Determining a crane tilt angle

ABSTRACT

In a method for determining a tilt angle of a crane, a portion of the crane is rotated about a pivot point. A Global Navigation Satellite System (GNSS) receiver antenna is disposed on the portion of said crane. At least three locations of the GNSS receiver antenna are determined by a GNSS receiver in a geo-referenced coordinate system during the rotating. A tilt angle of the crane based on the at least three locations of said GNSS receiver antenna is determined by a processor.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part application of and claims the benefit of co-pending U.S. patent application Ser. No. 13/835,869, filed on Mar. 15, 2013, entitled “SELF CALIBRATION FOR CRANE GEOMETRY,” by Cameron et al., and assigned to the assignee of the present application; application Ser. No. 13/835,869 is herein incorporated by reference in its entirety.

This application is related to co-pending U.S. patent application Ser. No. 13/836,131, filed on Mar. 15, 2013, entitled “CRANE BOOM POINTING ANGLE DETERMINATION,” by Cameron et al., and assigned to the assignee of the present application; application Ser. No. 13/836,131 is herein incorporated by reference in its entirety.

BACKGROUND

Determining the levelness of a crane can be difficult to determine. For example, a conventional bubble level may be employed to confirm whether or not a crane is level. A bubble level placed on various portions of a crane may not effectively determine whether a large crane having numerous moving parts is actually level.

Moreover, the performance of a crane is negatively affected if a crane is not level. For example, injury to persons on or near the crane, and damage to the crane may occur if the crane is not level.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part of this application, illustrate and serve to explain the principles of embodiments in conjunction with the description. Unless noted, the drawings referred to this description should be understood as not being drawn to scale.

FIG. 1A is block diagram of a tower crane system in accordance with embodiments of the present technology.

FIG. 1B is block diagram of a crane system in accordance with embodiments of the present technology.

FIG. 2A is a block diagram of a crane in an environment in various positions in accordance with embodiments of the present technology.

FIG. 2B is a block diagram of a pivot point of a crane and position points of receiver antennas associated with the crane in accordance with embodiments of the present technology.

FIG. 3A is a block diagram of pointing angles of a working arm of a crane in accordance with embodiments of the present technology.

FIG. 3B is a block diagram of pointing angles of a working arm of a crane in accordance with embodiments of the present technology.

FIG. 4 is a block diagram of a crane in an environment shown with error ellipsoids in accordance with embodiments of the present technology.

FIG. 5 is a flowchart of a method for calibrating for crane geometries and for determining a working arm pointing angle relative to a reference direction on a crane in accordance with embodiments of the present technology.

FIG. 6 is a flowchart of a method for determining a working arm pointing angle relative to a reference direction on a crane in accordance with embodiments of the present technology.

FIG. 7 is a flowchart of a method for determining a working arm pointing angle relative to a reference direction on a crane in accordance with embodiments of the present technology.

FIG. 8 is a block diagram of an example computer system upon which embodiments of the present technology may be implemented.

FIG. 9 is a block diagram of an example global navigation satellite system (GNSS) receiver which may be used in accordance with embodiments of the present technology.

FIG. 10 is a block diagram of an example Kalman filtering process which may be used in accordance with embodiments of the present technology.

FIG. 11 is a flowchart of a method for calibrating for crane geometries and for determining a working arm pointing angle relative to a reference direction on a crane in accordance with embodiments of the present technology.

FIG. 12 is a flowchart of a method for determining a working arm pointing angle relative to a reference direction on a crane in accordance with embodiments of the present technology.

FIG. 13 is a block diagram of an example environment and system upon which embodiments of the present technology may be implemented.

FIG. 14 is a block diagram of a crane system in accordance with embodiments of the present technology.

FIG. 15 is a block diagram of a crane system in accordance with embodiments of the present technology.

FIG. 16A is a top view of GNNS receiver antenna on a crane boom rotating about an axis in accordance with embodiments of the present technology.

FIG. 16B is a side-view of a plane of rotation of said crane boom and GNSS receiver with in accordance with embodiments of the present technology.

FIG. 16C is a plane of rotation of the crane boom and GNSS receiver with respect to an X-Y-Z coordinate system, in accordance with embodiments of the present technology.

FIG. 16D an X-Y-Z coordinate system, in accordance with embodiments of the present technology.

FIG. 16E is a side-view of a crawler crane rotating about a pivot point, in accordance with embodiments of the present technology.

FIG. 16F is a side-view of a crawler crane rotating about a pivot point, in accordance with embodiments of the present technology.

FIG. 16G is an embodiment of a crane system in accordance with embodiments of the present technology.

FIG. 17 is a flow chart for a method for determining a tilt angle in accordance with embodiments of the present technology.

FIG. 18 is a flow chart for a method for determining a tilt angle in accordance with embodiments of the present technology.

FIG. 19 is a flow chart for a method for determining levelness of a crane in accordance with embodiments of the present technology.

DESCRIPTION OF EMBODIMENT(S)

Reference will now be made in detail to various embodiments of the present technology, examples of which are illustrated in the accompanying drawings. While the present technology will be described in conjunction with these embodiments, it will be understood that they are not intended to limit the present technology to these embodiments. On the contrary, the present technology is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the present technology as defined by the appended claims. Furthermore, in the following description of the present technology, numerous specific details are set forth in order to provide a thorough understanding of the present technology. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present technology.

Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present description of embodiments, discussions utilizing terms such as “determining”, “utilizing”, “ceasing”, “using”, or the like, often refer to the actions and processes of a computer system, or similar electronic computing device. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. Embodiments of the present technology are also well suited to the use of other computer systems such as, for example, mobile communication devices.

Overview

Embodiments described herein are for self-calibrating for crane geometries and for determining a working arm pointing angle of a crane relative to a reference direction. As a crane or other lifting device operates, it may rotate about a pivot point. At any given moment, the working arm of the crane is pointing in a direction. For example, from a top down view, a horizontal crane may be able to rotate three hundred and sixty degrees and point in any direction. The direction may be given as an angle in a coordinate system such as a geo-referenced coordinate system. The present technology describes systems and processes for self-calibrating for crane geometries, for determining a working arm pointing angle of a crane relative to a reference direction, or for a combination thereof.

The working arm pointing angle of the crane may be determined using a global navigation satellite system (GNSS) antenna and receiver. Data from the GNSS receiver and antenna are collected for positions of the antenna on the crane as the crane moves or rotates. For example, data may be collected from three different positions of the crane as it rotates. The crane may stop or pause for a period of time in each position, during this time the data is collected. This data is then employed to determine the geographical location of each of the positions of the antenna on the crane. In one embodiment, three positions are determined; these three positions are then used to determine the pivot point of the crane. Specifically, a circle may be described as intersecting each of the three positions where the center of the circle is the pivot point of the crane. The pivot point of the crane may be described as a position within a coordinate system.

Once the pivot point of the crane is known, the crane may then rotate to any random position, the current location of the GNSS receiver antenna is used with the pivot point position to determine the pointing angle of the working arm of the crane. The pointing angle is the angle between the direction the crane is pointing and a reference direction. For example, the reference direction may be true north with the pointing angle being measured either clockwise or counter clockwise from true north or other reference direction. The pointing angle can be displayed on a map or other interface. Thus the present technology may be employed to determine the pointing angle of the working arm of a crane. Such information may be generated automatically and may be displayed to a crane operator or other personnel associated with the crane. The information may also be transmitted to a remote location such as a headquarters for a construction project. The information may also be employed for various crane operations such as automated crane operations.

In one embodiment, only one GNSS receiver and antenna are employed for determining the location of a pointing angle. However, in various embodiments, a plurality of receivers and antennas may be employed. In one embodiment, known fixed locations or reference points may also be employed to determine the location of the pointing angle. Such known and fixed reference locations may be the pivot point of the crane or may be a reference point external to the crane but within the crane's operating environment.

Self-Calibration for Crane Geometry and Crane Pointing Angle

With reference now to FIG. 1A, an illustration of a side view of a tower crane 100 is presented, according to various embodiments. Tower crane 100 may also be referred to as a horizontal crane.

Tower crane 100 includes a base 104, a mast 102 and a working arm (e.g., jib) 110. The mast 102 may be fixed to the base 104 or may be rotatable about base 104. The base 104 may be bolted to a concrete pad that supports the crane or may be mounted to a moveable platform. In one embodiment, the operator 132 is located in a cab 106 which includes a user interface 137.

Tower crane 100 also includes a trolley 114 which is moveable back and forth on working arm 110 between the cab 106 and the end of the working arm 110. A cable 116 couples a hook 122 and hook block 120 to trolley 114. A counterweight 108 is on the opposite side of the working arm 110 as the trolley 114 to balance the weight of the crane components and the object being lifted, referred to hereinafter as load 118.

Tower crane 100 also includes GNSS receiver antennas 124, 126, 128, and 130 each capable of receiving signals from one or more global positioning system (GPS) satellites and/or other positioning satellites, as is described in greater detail in reference to FIG. 9. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1) may be connected or coupled to tower crane 100. For example, any of GNSS receiver antennas 124, 126, 128, and 130 may also include a separate receiver. In one embodiment, the present technology makes use of only one GNSS receiver antenna (e.g., antenna 124, antenna 126, or antenna 128) and one GNSS receiver. In one embodiment, the present technology makes use of a plurality of GNSS receiver antennas (e.g., antennae 124 and 128) in communication with only a single GNSS receiver (e.g., GNSS receiver 150-1 or 150-2). In one embodiment, the present technology makes use of a plurality of GNSS receiver antennas in communication with a plurality of GNSS receivers. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-2) is located remote to tower crane 100 and is in communication with the GNSS receiver antenna/antennae on the crane via a coaxial cable and/or a wireless communication link.

A GNSS receiver antenna may be disposed along a point of a boom assembly of tower crane 100. The boom assembly may be comprised of cab 106, counterweight 108, working arm 110, and trolley 114.

As depicted in FIG. 1A, a GNSS receiver antenna/antennae may be located at various points on tower crane 100. GNSS receiver antenna 124 is located on or part of counterweight 108. GNSS receiver antenna 126 is located on or part of trolley 114. By placing the GNSS receiver antenna 126 on trolley 114, the antenna may be positioned at a point far from the pivot point of the crane. The further the antenna is positioned from the pivot point, the greater the accuracy will be in determining the pointing angle of the working arm of the crane. This is due to errors inherent in determining an exact geographic position of a GNSS receiver antenna. The error may be described in statistical terms as an error ellipsoid. The error ellipsoid defines a three-dimensional region which is expected to contain the actual position of the antenna with a given level of confidence. When the distance between the pivot point and the GNSS receiver antenna are much greater than the size of the error ellipsoid, the error in determining the actual pointing angle of the working arm of the crane is reduced. In one embodiment, GNSS receiver antenna 128 is located on or part of working arm 110. It should be appreciated that a GNSS receiver antenna may be located at any part of working arm 110 and working arm 110 may have more than one GNSS receiver antenna. GNSS receiver antenna 130 is located on or part of cab 106. A GNSS receiver antenna may also be located on or part of the pivot point of tower crane 100.

Tower crane 100 may have a principal axis. In a top view of tower crane 100, the principal axis may be described as a fictional line that runs through the center of working arm 110, intersects the pivot point and runs through the center of counterweight 108. A GNSS receiver antenna may be located on the principal axis or may be offset from the principal axis. If the GNSS receiver antenna is offset from the principal axis, the present technology accounts for this offset in determining the pointing angle of the working arm of the crane.

With reference now to FIG. 1B, an illustration of side view crane 160 is presented, according to various embodiments. Crane 160 may also be referred to as a luffer crane or a level luffing crane. Crane 160 may comprise some of the components described for tower crane 100 of FIG. 1A.

Base 161 is a base or housing for components of crane 160 such as motors, electrical components, hydraulics, etc. In one embodiment, structure 162 comprises wheels, tracks, or other mechanics that allow for the mobility of crane 160. In one embodiment, structure 162 comprises outriggers that can extend or retract and are used for the stability of crane 160. In one embodiment, structure 162 is a platform for a stationary crane. It should be appreciated that base 161 is able to rotate, swivel, or pivot relative to structure 162 along axis 167. GNSS antenna 163 may be disposed on top of base 161 or may be disposed inside of base 161. GNSS antenna 163 will move and rotate with base 161 about axis 167.

Pivot point 164 allows for lattice boom 165 to pivot with respect to base 161. In this manner, lattice boom 161 can point in different directions and change angle of pivot point 166. Pivot point 166 allows for jib 168 to pivot and change position with respect to lattice boom 165 and base 161. A GNSS receiver antenna may be attached to or coupled with any component of crane 160. For example, pivot points 164 and 166 may have a GNSS receiver antenna coupled to them. GNSS receiver antennas 130, 163, 169, 170, and 171 depict various locations a GNSS receiver antenna may be located.

It should also be appreciated that the present technology may be implemented with a variety of cranes including, but not limited to, a tower crane, a luffing crane, a level luffing crane, a fixed crane, a mobile crane, a self-erecting crane, a crawler crane, and a telescopic crane.

With reference now to FIG. 2A, a top view illustration environment 200 depicting crane 201 in three positions (202, 204, 206). It should be appreciated that crane 201 may have all the same capabilities and components of tower crane 100 of FIG. 1A or crane 160 of FIG. 1B. Position 202 depicts crane 201 in a first position. During regular operations of crane 201, crane 201 may periodically rotate to a different position. Position 204 and 206 show a second and third position of crane 201 respectively. Crane 201 rotates about pivot point 220. Crane 201 is depicted as having a GNSS receiver antenna at the end of the working arm in three positions 208, 210, and 212. Crane 201 is also depicted as having a GNSS receiver antenna at counterweight 232 in three positions 214, 216, and 218. Crane 201 also comprises cab 234 with GNSS receiver antenna 230 and trolley 236 with GNSS receiver antenna 238. Pivot point 220 may also comprise a GNSS receiver antenna. Positions 208, 210, 212, 214, 216, and 218 may also refer to the location(s) of GNSS receiver(s) collocated with an antenna. While crane 201 is depicted having more than one GNSS receiver antenna, it should be appreciated that crane 201 may only have one antenna in some embodiments or may have a plurality of GNSS receiver antennae in some embodiments. A GNSS receiver may be disposed in line with an principal axis of the working arm such as the GNSS receiver antenna positions depicted by positions 208, 210, and 212, or may be offset from the principal axis such as GNSS receiver antennas 230 and 238 as well as depicted by positions 214, 216 and 218.

The position of GNSS receiver antenna 238 may change as trolley 236 moves relative to the working arm. In an embodiment where crane 201 is a level luffing crane, such as crane 160 of FIG. 1B, the position of a GNSS receiver antenna relative to pivot point 220 as the lattice bottom of the crane is rotated relative to the base of the crane. In one embodiment, pivot point 220 is a top view of axis 167 of FIG. 1B about which base 161 rotates.

Crane 201 operates in an environment that may be described using a geo-referenced coordinate system where each point in real space coordinates with a location in the geo-referenced coordinate system. The coordinate system may be a coordinate system pre-programmed into a GNSS receiver used for the present technology. During the operations of crane 201, the GNSS receiver antennas receive signals from a GPS satellite. The receiving of the signal may be continuous or may only occur as needed. In other words, the receiver may cease receiving the signal from the antenna after sufficient data has been collected. The receiver may later receive new signals or new data from the antenna as necessary. As crane 201 rotates during its normal operations, the GNSS receiver antenna(s) are also moved into various positions. Data may be collected by a GNSS receiver associated with GNSS receiver antenna(s). This data may then be used for several purposes.

In one embodiment, the data collected related to the various positions of the GNSS antenna during crane operations is employed to determine geographic locations related to a coordinate system such as a geo-referenced coordinate system. These geographic locations may then be employed to determine the pivot point of the crane such as pivot point 220. For example, the antenna may be moved to three positions during normal operation of crane 201. Positions 208, 210, and 212 show the same GNSS receiver antenna at three positions. Crane 201 may pause at each of these positions for a period of time. Once the data is collected at each of these positions, via a GNSS receiver, the three geographic locations of the antenna within the coordinate system are known. Various techniques may then be employed to determine the location of pivot point 220.

For example, as the antenna is rotated on the crane to various positions, the positions form the arc of a circle centered on pivot point 220. In one embodiment, a circle is described to intersect each of the three determined positions and the center of the circle is described as the location of pivot point 220. In one embodiment, solving three equations related to the circle with three variables may be employed to determine pivot point 220. This example describes using three positions of the antenna to determine the location of the pivot point. It should be appreciated that the present technology is not limited to three positions of the antenna and may employ more than three positions of the antenna to determine the location of the pivot point.

Moreover, more than one antenna may be used to determine the pivot point. If more than one antenna is employed, two separate determinations may be made of the location of the pivot point using locations from each antenna separately. The results may then be compared or averaged to determine the most accurate location of the pivot point. The present technology may also repeat the process of determining the location of the pivot point to increase the accuracy. In one embodiment, Kalman filtering and/or the method of least squares may be employed to determine the location of pivot point 220.

The coordinate system may also have a reference direction such as reference direction 222. For example, the reference direction may be true north or any other direction. Once pivot point 220 is a known geographic position in the coordinate system and with the reference direction known, it is possible to then calculate or determine the pointing angle of crane 201 in any direction. To determine the pointing angle of the crane, a current location of a GNSS receiver antenna on crane 201 is needed. A fictional line is then drawn intersecting pivot point 220 and the current location of the GNSS location antenna, this fictional line then forms an angle with the reference direction. This angle is then used to describe the pointing angle of crane 201 within the geo-referenced coordinate system or in other words, the pointing angle is described with respect to the reference direction.

To determine which direction the working arm of the crane is pointing, the mounting location of the GNSS antenna on crane 201 must be known. For example, if the GNSS receiver antenna is mounted on the working arm of the crane, then the pointing direction of the crane starts at the pivot point and points in the direction of the location of the antenna. However, if the GNSS receiver antenna is mounted on the counterweight of the crane, the pointing direction of the crane starts at the antenna and points in the direction of the pivot point. The GNSS receiver antenna may be mounted at many different locations of the crane such as the working arm, the counterweight, the cab, or the trolley. The trolley or other components of the crane may not be stationary with respect to the working arm. Therefore, if a GNSS receiver antenna is mounted to the trolley, movements of the trolley with respect of the working arm must be known to determine the location of the pivot point and/or the pointing angle of the crane.

In one embodiment, the present technology makes use of known and fixed reference points within the working environment of the crane to determine the location of the pivot point and/or the pointing angle of the crane. Such a reference point may be reference point 224. The reference point may be a surveyed location within the working environment of crane 201. The location of reference point 224 may be determined using reference receiver 226 which may be a GNSS receiver. Reference receiver 226 may be stationary and may be employed within the environment of the crane for purposes in addition to the purposes of the present technology. In one embodiment, the reference point is obtained from mobile receiver 228. Mobile receiver 228 may be a handheld device associated with the environment surrounding the crane. For example, mobile receiver 228 may be a tablet computer held by a foreman associated with the construction project the crane is being used for. Mobile receiver 228 may also be a cell phone, a smart phone, a handled device, a personal digital assistant, a netbook, a personal computer, a notebook, or any other electronic device with GNSS receiver capabilities. A computer system or a plurality of computer systems may be employed to practice the present technology. Such a computer system may be in communication with the GNSS receivers and other electronic devices used to practice the embodiments described herein. Such a computer system may have some or all of the capabilities of computer system 800 of FIG. 8.

In one embodiment, pivot point 220 is a known geographic position in the coordinate system. With a known reference point the present technology is not required to determine the location of a pivot point and may then only employ a GNSS receiver antenna mounted on the crane to determine a current location of the antenna and then determine a pointing angle of the crane within a coordinate system.

With reference now to FIG. 2B, an illustration of environment 240 depicting pivot point 220. In FIG. 2B pivot point 220 is depicted in a top view as surrounded by positions 254, 256, and 258. Positions 254, 256, and 258 represent three locations of a first GNSS receiver antenna that is mounted to a crane. Each position represents a different position of the antenna at a different point in time. The antenna is communicatively coupled with a GNSS receiver capable of determining a geographic location of the antenna relative to a coordinate system at each position. Circle 250 shows that the three positions 254, 256, and 258 form a circle around pivot point 220. The present technology may employ only one GNSS receiver antenna and thus only one circle would be formed. However, in one embodiment, two or more GNSS antennas may be employed to determine the location of pivot point 220 as is depicted in FIG. 2B. Radial distance 260 may be computed as the radius of circle 250 and used to locate pivot point 220.

With reference now to FIG. 3A, an illustration of environment 300 depicting a top view of crane 302. It should be appreciated that crane 302 may have all the same capabilities and components of tower crane 100 of FIG. 1A, crane 160 of FIG. 1B, and crane 201 of FIG. 2A. Crane 302 comprises pivot point 304 about which crane 302 rotates during normal operations. Line 310 depicts a principal axis of crane 302 which intersects pivot point 304 and extends distally down the center portion of the working arm of crane 302. Line 310 also depicts a pointing angle of the working arm of crane 302. The pointing angle may be defined relative to reference direction 312. GNSS receiver antenna 306 depicts a GNSS receiver mounted to a side portion of the cab section of crane 302. GNSS receiver antenna 306 is depicted as being mounted to structure 314 of crane 302 offset from the principal axis or line 310. Structure 314 may be a cab or a trolley or some other portion of crane 302. Line 308 depicts a pointing angle that is defined as intersecting GNSS receiver antenna 306 and pivot point 304. However, line 308 does not depict the correct pointing angle of the working arm of crane 302 because of the offset of GNSS receiver antenna 306 relative to the principal axis.

In one embodiment, GNSS receiver antenna 306 is mounted to crane 302 along the principal axis, i.e., line 310. In such an embodiment, an offset of GNSS receiver antenna 306 does not exist and would not need to be accounted for.

The present technology is able to account for the offset of GNSS receiver antenna 306 and thus correct the pointing angle defined by line 308 such that the true pointing angle of the working arm of the crane is known. This is accomplished by knowing where the GNSS receiver antenna 306 is mounted on crane 302 and its offset relative to the principal axis. This offset may be accounted for whether the antenna is mounted to the counterweight of the crane or another component of the crane.

In one embodiment, crane 302 comprises trolley 315 with a GNSS receiver antenna 307. In an embodiment where there are two GNSS receiver antennas, such as 306 and 307, the present technology may operate to determine the pointing angle of a crane without knowing or determining the location of pivot point 304. In such an embodiment, the locations of GNSS receiver antennas 307 and 306 are determined and line 309 is depicted as a reference line. Line 309 does not point in the direction of the principal axis of the crane because GNSS receiver antennas 307 and 306 are offset from the principal axis. The present technology may employ methods and techniques that account for the offsets of GNSS receiver antennas 307 and 306 and thus compute the true pointing angle of the working arm of crane 302. For example, the distance of the offsets may be known by physically measuring the distance of the offsets and then account for them. In one embodiment, the offsets are accounted for by collecting data from multiple positions of GNSS receiver antenna 306 as it rotates and data from multiple positions of GNSS receiver antenna 307 as it moves with trolley 315 relative to the working arm. This position data can then be used with basic geometric principles to determine the offset angle of line 309 from line 308 and ultimately from line 310. This offset angle is then accounted for in determining the true point angle of the crane with respect to the reference direction 312.

Similarly, the present technology is able to correct for movements of a GNSS receiver antenna relative to the crane itself in determining the pointing angle of the crane. For example, the GNSS receiver antenna may be mounted to a trolley of the crane that is moving relative to the crane along the working arm of the crane. The GNSS receiver may be in communication with the controls of the crane and thus know the location of the trolley relative to the crane and/or the pivot point of the crane for any moment in time. The GNSS receiver may then account for such movements of the trolley relative to the crane in determining the pointing angle of the crane.

With reference now to FIG. 3B, an illustration of environment 350 depicting a top view of crane 302. It should be appreciated that crane 302 and its components have the same capabilities and components of tower crane 302 of FIG. 3A. Crane 302 is depicted as pointing in the direction indicated by line 310. This pointing direction is associated with angle 316 relative to reference direction 312. However, the present technology may measure the pointing angle of crane 302 using angle 318 relative to reference direction 312. This is due to the offset of GNSS receiver antenna 306 from the principal axis of crane 302. The present technology may account for this offset by measuring the distance that GNSS receiver antenna 306 is offset from the principal axis and then calculate angle 320. Then the offset may be accounted for by determining angle 318, subtracting angle 320 from angle 318 and thus calculate angle 316 which is the true pointing angle of crane 302 relative to reference direction 312.

With reference now to FIG. 4, an illustration of environment 400 depicting a top view of crane 402. It should be appreciated that crane 402 may have all the same capabilities and components of tower crane 100 of FIG. 1A, crane 160 of FIG. 1B, crane 201 of FIG. 2A, and crane 302 of FIG. 3A. Crane 402 is depicted with pivot point 404 and GNSS receiver antenna 408. Error ellipsoid 406 depicts an error range in which the location of GNSS receiver antenna 408 may be determined. It should be appreciated that a GNSS receiver antenna receives signals that may be subjects to a variety of errors due to a variety of factors. The signal itself may be corrupted or may suffer from external interference. Additionally, the quality of the antenna may lead to additional errors in receiving the signals. Thus, signals received at a GNSS receiver, from the antenna, may contain errors.

Such errors may lead to errors in a GNSS receiver in determining the true location or position of GNSS receiver antenna 408. These errors in the true location may then lead to errors in the true location of the pivot point 404 and ultimately the true pointing angle of the crane. The errors in determining the true location of GNSS receiver antenna 408 may be within the range defined by error ellipsoid 406. Error ellipsoid 406 is duplicated by error ellipsoid 410 depicted with two lines forming an x to show the coordinate system in which the location of GNSS receiver antenna 408 is defined. Position 412 reflects the true position of GNSS receiver antenna 408 and position 414 reflects an erroneous position of GNSS receiver antenna 408. In one embodiment, GNSS receiver antenna 408 remains stationary in true position 412 for a period of time. During that period of time GNSS receiver antenna 408 may receive a plurality if signals that may be interpreted by a GNSS receiver as a plurality of locations. Thus there may be a plurality of erroneous positions similar to position 414 within error ellipsoid 410.

In one embodiment, the GNSS receiver is in communication with the crane's controls and is aware of when the crane is stationary for a period of time. In one embodiment, a GNSS receiver may receive one data point from the antenna for every second that the antenna is stationary. Thus the GNSS receiver may interpret the plurality of signals during this period of time as all being related to one true location of GNSS receiver antenna 408. Error correction may then occur using various techniques to determine the true location of GNSS receiver antenna 408. Such error correction may vary in accuracy and may be more accurate given more data which is received the longer the crane stays stationary and the more signals are received by GNSS receiver antenna 408. The error may be referred to as a residual error and the error correction attempts to minimize such an error. The error correction may use statistical analysis and averaging to correct the errors. The error correction may employ techniques solving variables using a plurality of equations where the equations have a number of variables that is equal to or less then equal to the number of equations. In one embodiment, Kalman filtering and/or the method of least squares is employed in the error correction.

With reference now to FIG. 13, an illustration of environment 1300 depicting processor 1306. Processor 1306 is a processor capable of processing data such as a central processing unit (CPU). Processor 1306 may be part of a device such as a GNSS receiver that may or may not be coupled with a crane. Processor 1306 may be a component of a computer system where the computer system may be attached to or coupled with a crane, or may be remote to a crane. Processor 1306 may be a component in a computer system where the computer system may be a cellphone, a smart phone, a personal digital assistant (PDA), a tablet computer, a personal computer, a notebook computer, a netbook computer, or the like. In one embodiment, the computer system for processor 1306 has communications capabilities via a network, a phone link, a cell phone link, WI-FI where the communications capabilities are used by processor 1306 to link to the GNSS receivers and/or antennas.

In one embodiment, environment 1300 comprises receivers 1303 and 1305 which are GNSS receivers capable of receiving data from antennas 1302 and 1304. Such data may be communicated via an electrical wire or may be sent using wireless communications. Receivers 1303 and 1305 are then able to process the data from antennas 1302 and 1304 to determine a geographical position for antennas 1302 and 1304. It should be appreciated that the more data receivers 1303 and 1305 receive from antennas 1302 and 1304 the more accurate the determined geographical position will be. In one embodiment, environment 1300 comprises only one receiver connected to both antennas 1302 and 1304. In one embodiment, antennas 1302 and 1304 are GNSS receiver antennas and are couple with or attached to locations on a crane such as the GNSS receiver antennas of FIGS. 1A and 1B. It should be appreciated that antennas 1302 and 1304 are physically separated by a distance depicted by distance 1303. Antennas 1302 and 1304 may be associated with the same GNSS receiver or may each be associated with a unique GNSS receiver.

Receivers 1303 and 1305 are able to relay the determined geographic positions of the antennas to processor 1306. In one embodiment, this is accomplished using a wired or wireless network such as WI-FI or near field communications. In one embodiment, processor 1306 is a component of a GNSS receiver.

Processor 1306 is able to process the data from receivers 1303 and 1305 and generate output 1308. Output 1308 may refer to outputs and data generated by the present technology. For example, output 1308 may be a location of a pivot point of a crane, may be a working arm pointing angle of a crane, or may be offset distances of an antenna from a principal axis of a working arm of a crane. In one embodiment, processor 1306 generates output 1308 via Kalman filtering techniques. In one embodiment, processor 1306 generates output 1308 via the method of least squares.

With reference now to FIG. 14, an illustration of environment 1400 depicting a top view of crane 1402. In one embodiment, crane 1402 is a tower crane that pivots a working arm around pivot pint 1404. It should be appreciated that crane 1402 may have all the same capabilities and components of tower crane 100 of FIG. 1A, crane 201 of FIG. 2A, and crane 302 of FIG. 3A. Environment 1400 also depicts structure 1408 coupled with GNSS receiver antenna 1406. Structure 1408 may be a cab, a counterweight or another component of crane 1402. Environment 1400 also depicts trolley 1410 coupled with GNSS receiver antenna 1412.

Distances 1414, 1416, 1418, and 1420 depict distances between components that may be useful to the present technology. Distance 1414 is the distance from GNSS receiver antenna 1406 to pivot point 1404. Distance 1416 is the distance from GNSS receiver antenna 1412 to pivot point 1404. Distance 1418 is the distance from GNSS receiver antenna 1406 to a principal axis of the working arm of crane 1402. Distance 1420 is the distance from GNSS receiver antenna 1412 to a principal axis of the working arm of crane 1402. Distances 1414, 1416, 1418, and 1420 may change during the operations of the crane as components of the crane move positions such as trolley 1410. It should be appreciated that distances 1414, 1416, 1418, and 1420 each deal with an offset of a GNSS receiver antenna from the principal axis of the working arm of crane 1402. Such distances may be physically measured or may be computed based on data accumulated from the GNSS receiver antennas. Once such distances are known, the offset of the GNSS receiver antennas may be accounted for in determining the pointing angle of the working arm of a crane.

In one embodiment, the location of pivot point 1404 is determined using techniques of the present technology described herein by rotating a GNSS receiver antenna about the pivot point and collecting data from the antenna. Once the location of pivot point 1404 is known, distances 1414 and 1416 may be calculated. In one embodiment, multiple positions of GNSS receiver antenna 1412 may be determined by collecting data from GNSS receiver antenna 1412 as it changes positions with trolley 1410 traveling along the working arm of crane 1402. These multiple positions then define a line that is parallel to the principle axis of the working arm of crane 1402. The shortest distance between such a parallel line to pivot point 1404 serves to define distance 1420. Once distance 1420 is known, the principal axis may be determined and distance 1418 may be calculated. It should be appreciated that other techniques and calculations may be performed to determine the offset distances.

Distances 1414, 1416, 1418, and 1420 are useful for determining the working arm pointing angle of a crane in two dimensions. In one embodiment, the present technology is also able to determine a three dimensional pointing angle of a crane. A three dimensional pointing angle determination may be useful for various types of cranes including mobile cranes and tower cranes that are capable of changing the elevation of the working arm. For example, the present technology may determine the three dimensional point angle of a working arm of the crane both before and after the crane changes the elevation of the working arm.

With reference now to FIG. 15, an illustration of environment 1500 depicts a side view of crane 1502 and environment 1550 depicting a top view of crane 1502. It should be appreciated that crane 1502 may have all the same capabilities and components of crane 160 of FIG. 1B. In one embodiment, crane 1502 is a level luffing crane where base 1503 is able to rotate about axis 1524 of environment 1500 or pivot point 1510 of environment 1550. Working arm 1526 may be capable of rotating about pivot point 1508 and thus move relative to base 1503. GNSS receiver antenna 1504 is depicted as being coupled to the top portion of base 1503. GNSS receiver antenna 1506 is depicted as being coupled to a distal end of working arm 1526. Axis 1528 defines an axis that intersects pivot point 1508 and is perpendicular to axis 1524. Axis 1530 intersects pivot point 1510 and is parallel to a top view of the principal axis of working arm 1526. Axis 1530 may or may not be in line with a top view of the principle axis of working arm 1526 as is depicted in environment 1550. Axis 1532 is an axis that intersects GNSS receiver antenna 1506 and is parallel to axis 1524. Therefore, working arm 1526 is capable of pointing in any number of directions in three dimensional space as it is able to rotate three hundred and sixty degrees around axis 1524 and change the vertical point angle as working arm 1526 pivots at pivot point 1508.

In one embodiment, the present technology may only determine a two dimensional pointing angle of working arm 1526. In such an embodiment, the pointing angle would be calculated with respect to a reference direction defined in the top view of crane 1502 depicted in environment 1550 in much the same manner that a two dimensional pointing angle of the working arm of a tower crane is determined. In one embodiment, a three dimensional pointing angle of working arm 1526 is determined. Distances 1512, 1514, 1516, 1518, 1520, and 1522 are useful in determining a pointing angle of working arm 1526. Distance 1512 is the distance between axis 1524 and GNSS receiver antenna 1504. Distance 1514 is the distance between axis 1532 and axis 1524. Distance 1516 is the distance between axis 1524 and pivot point 1508. Distance 1518 is the distance between axis 1528 and GNSS receiver antenna 1504. Distance 1520 is the distance between the intersection of axis 1524 with axis 1528 and GNSS receiver antenna 1506. Distance 1522 is the distance between axis 1530 and GNSS receiver antenna 1504. Distances 1512, 1514, 1516, 1518, 1520, and 1522 are each associated with the offset of a GNSS receiver antenna and a principal axis of working arm 1526.

Kalman Filtering

FIG. 10 depicts an example Kalman filtering process 1000, according to some embodiments. It should be appreciated that Kalman filtering is well known. As such, FIG. 10 and the associated discussion are utilized only to provide a high-level general description. Variations in the described procedures will occur during specific implementations of Kalman filtering. The extended Kalman filter and the unscented Kalman filter represent some of the variations to the basic method. Such variations are normal and expected. Generally speaking, Kalman filtering is a basic two-step predictor/corrector modeling process that is commonly used model dynamic systems. A dynamic system will often be described with a series of mathematical models. Models describing satellites in a Global Navigation Satellite System (GNSS) are one example of a dynamic system. Because the position of any satellite and/or the positions of all the satellites in a system constantly and dynamically change and the satellites output a signal that can be measured by a GNSS receiver, Kalman filtering can be used in determining the location of a GNSS antenna.

A basic Kalman filter implemented using Kalman filtering process 1000 typically has at least two major components 1010: states 1011 and covariances 112. States 111 represent variables that are used to describe a system being modeled, at a particular moment in time. Covariances 1012 are represented in a covariance matrix that describes uncertainty, or lack of confidence, of states 1011 with respect to each other at that same moment in time. Kalman filtering process 1000 also handles noise, or unpredictable variability, in the model. There are two principle types of noise, observation noise 1041 and process noise 1021. Process noise 1021 describes the uncertainty in predicting the states 1011 as a function of time. Observation noise 1041 is noise that relates to errors in the actual observation(s) 1040 (e.g., observed measurements) that are used as an input/update to Kalman filtering process 1000.

A prediction phase 1020 is the first phase of Kalman filtering process 1000. Prediction phase 1020 uses predictive models to propagate states 1011 and state covariance 1022 to the time of an actual observation(s) 1040. The propagated states 1011 are used to make predicted observation(s) 1022 for the time of actual observation(s) 1040.

A correction phase 1030 is the second phase in the Kalman filtering process 1000. During correction phase 1030, Kalman filtering process 1000 uses the difference between the predicted observation(s) 1022 and the actual observation(s) 1040 to create an observation measurement residual 1031, which may commonly be called the “measurement residual.” Observation noise 1041 can be noise in actual observation(s) 1040 and/or noise that occurs in the process of taking the actual observation(s) 1040. A Kalman gain 1032 is calculated using both the covariances 1012 and the observation noise 1041. The states 1011 are then updated using the Kalman Gain 1032 multiplied by the observation measurement residual 1031. The covariances 1012 are also updated using a function related to the Kalman gain 1032; for example, in one embodiment where Kalman gain is limited to a value between 0 and 1, this function may be 1 minus the Kalman gain. This updating is sometimes referred to as the “covariance update.” In some embodiments, if no actual observation 1040 is available, Kalman filtering process 1000 can simply skip correction phase 130 and update the states 1011 and covariances 1012 using only the information from prediction phase 1020, and then begin again. Using the new definitions of the states 1011 and covariances 1012, Kalman filtering process 1000 is ready to begin again and/or to be iteratively accomplished.

Equation of a Circle Passing Through Three Points

In one embodiment, the present technology determines the location of a pivot point by employing known techniques for finding the equation of a circle that passes through three known or given points. In the present technology, the three given points may be determined via data from a GNSS receiver antenna coupled with a crane gathered as the crane rotates around a pivot point. For example, one known technique substitutes the three points in the general form of circle and solve coefficients. Equation 1 shows the equation for the general form of a circle in two-dimensional space, where x and y represent any point on the circle in a Cartesian coordinate system. D, E, and F represent values to be solved for a particular circle: x ² +y ² +Dx+Ey+F=0  EQUATION 1

The three given points may be described as P, Q, and R. Each point P, Q, and R has a corresponding x,y Cartesian coordinate. P, Q, and R are each separately substituted into Equation 1 for the x and y values to create three equations. Those three equations are then solved to determine the D, E, and F values. For example, the three points may be P(2,1), Q (0,5), and R (−1,2). Upon substituting the three points into Equation 1 three separate times and solving for D, E, and F values, the resulting equation of the circle passing through P(2,1), Q (0,5), and R (−1,2) is represented by Equation 2: x ² +y ²−2x−6y+5=0  EQUATION 2

Once the equation of the circle is known, the center of the circle may be calculated and the location of the pivot point of the crane is determined. For more known techniques and further explanation, please refer to http://www.qc.edu.hk/math/Advanced%20Level/circle%20given%203%20points.htm.

Operations

FIGS. 5, 6, 7, 11 and 12 are flowcharts illustrating processes 500, 600, 700, 1100, and 1200 respectively for calibrating for crane geometries and for determining a working arm pointing angle of a crane relative to a reference direction in accordance with one embodiment of the present technology. In various embodiments, processes 500, 600, 700, 1100, and 1200 or portions thereof, are computer implemented methods that are carried out by processors and electrical components under the control of computer usable and computer executable instructions. In one embodiment, processor 1306 of FIG. 13 is employed. The computer usable and computer executable instructions reside, for example, in data storage features such as computer usable volatile and non-volatile memory and may be non-transitory. However, the computer usable and computer executable instructions may reside in any type of computer usable storage medium. Processes 500, 600 and 700 may be performed by the components of FIGS. 1A, 1B, 2A, 2B, 3A, 3B, 4, 8, 9, 10, 13, 14, and 15.

With reference to FIG. 5, process 500 is a process for calibrating for crane geometries. Such as process may be described as a self-calibrating process or an automatic process. Process 500 may include optional steps that determine a working arm point angle of the crane in addition to the calibrating.

At 502, a Global Navigation Satellite System (GNSS) receiver antenna is disposed on a point along a boom assembly of the crane, the crane configured to pivot about a pivot point. The antenna may be disposed, coupled, connected, mounted to any number of places along the crane that will move about a pivot point of the crane as the crane carries out normal operations. For example, the antenna may be disposed along a boom assembly of the crane where the boom assembly may be comprised of cab 106, counterweight 108, working arm 110, and trolley 114 of tower crane 100 of FIG. 1A. In one embodiment, the GNSS receiver antenna is mounted to the counterweight of a working arm of a crane.

The GNSS receiver antenna is also communicatively coupled with a GNSS receiver either by being physically coupled, coupled by a wire, or wireless. The GNSS receiver may or may not be disposed on the crane. The GNSS receiver may have one or more antennas associated with it. The antennas may be associated in a master slave relationship. The present technology may also incorporate a plurality of receivers each with their own antenna or plurality of antennas. A processor is capable of receiving position data from the GNSS receiver antenna or antennas and performing operations on the data. The processor may be associated with a GNSS receiver or may be part of a separate computing device. The processor may be located on or couple to the crane or may be remote to the crane. For example, Processor 1306 of FIG. 13 may be used.

For example, the crane may be tower crane 100 of FIG. 1A and the GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A each capable of receiving signals from one or more global positioning system (GPS) satellites. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1 of FIG. 1A) may be connected or coupled to tower crane 100 of FIG. 1A.

At 504, a working arm of the crane is rotated about the pivot point to at least three different positions. The crane may remain stationary at each of the three positions for a period of time to allow the antenna to receive multiple signals from GPS satellites. In one embodiment, the three different positions may be positions such as positions 208, 210 and 212 of FIG. 2A. In one embodiment, the three different positions may be positions such as positions 254, 256 and 258 of FIG. 2B. In one embodiment, the three different positions may be positions such as positions 254, 256 and 258 of FIG. 2B. It should be appreciated that the present technology is not limited to three positions, but may employ any number of positions that can be utilized to determine a pivot point.

At 506, three locations are determined in a geo-referenced coordinate system of the at least three different positions. This may be accomplished using a GNSS receiver or a computer system communicatively coupled with the GNSS receiver. For example, the computer system may be 800 of FIG. 8 coupled with a GNSS receiver of FIG. 1A such as 150-1.

At 508, a location of the pivot point is determined based on the three locations. In one embodiment, this comprises determining the location of a pivot point such as pivot point 220 of FIG. 2A. For example, the pivot point may be located at the center of a circle that intersects each of the three locations such as is depicted in FIG. 2B with pivot point 220 and circle 250 or circle 260. In one embodiment, 508 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

At 510, a current working arm pointing angle is determined relative to a reference direction for any directional orientation of the working arm based on a determined current location of the GNSS receiver antenna for the directional orientation and the location of the pivot point. The determined location of the GNSS receiver antenna may be any position the antenna is currently located in for any given moment in time. Procedure 510 may be repeated to determine a new pointing angle. The determination of the pointing angle may be accomplished by first pointing to the crane in the reference direction and then obtaining a position of the GNSS receiver antenna. This position data is then employed to determine a current pointing angle of the crane for any direction relative to the reference direction. For example, the reference direction may be reference direction 222 of FIG. 2A. In one embodiment, 510 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13. 510 is an optional step. If process 500 does not include 510, then process 500 only is a process for calibrating for crane geometries. However, if 510 is carried out, then process 500 is also a process for determining a working arm pointing angle of the crane.

With reference to FIG. 6, process 600 is a process for determining a working arm point angle of the crane. At 602, a Global Navigation Satellite System (GNSS) receiver antenna is provided and disposed on a point along a boom assembly of a crane. The antenna may be disposed, coupled, connected, mounted to any number of places along the crane that will move about a pivot point of the crane as the crane carries out normal operations. The GNSS receiver antenna is also communicatively coupled with a GNSS receiver either by being physically coupled, coupled by a wire, or wireless. The GNSS receiver may or may not be disposed on the crane. The GNSS receiver may have one or more antennas associated with it. The antennas may be associated in a master slave relationship. The present technology may also incorporate a plurality of receivers each with their own antenna or plurality of antennas.

For example, the crane may be tower crane 100 of FIG. 1A and the GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A each capable of receiving signals from one or more global positioning system (GPS) satellites. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1 of FIG. 1A) may be connected or coupled to tower crane 100 of FIG. 1A.

At 604, at least one known and fixed reference point is provided in a geo-coordinate reference system related to the reference system utilized by a GNSS receiver coupled with the GNSS receiver antenna, the known fixed reference point proximate a working environment of the crane. The known and fixed reference point may be a pivot point of the crane, a surveyed location in the working environment of the crane, or may be information from a second GNSS receiver located within the working environment of the crane where the crane is operating as the know and fixed reference point. In one embodiment, the known and fixed reference point is reference point 224 of FIG. 2A. The known and fixed reference point may also be obtained by reference receiver 226 or mobile receiver 228 of FIG. 2A. In one embodiment the known and fixed reference point is pivot point 220 of FIG. 2A or 2B. In one embodiment, the known and fixed reference point is defined as proximate to the working environment of the crane if it is observable by the crane operator.

At 606, the working arm is rotated around a pivot point of the crane to a specific pointing angle. In one embodiment the pivot point is pivot point 220 of FIG. 2A or 2B. The specific point angle may be reference direction 222 of FIG. 2A or some other direction with respect to reference direction 222.

At 608, the GNSS receiver antenna is used while at the specific pointing angle to determine a reference point and the location of the reference point is used to determine a working arm pointing angle relative to a reference direction. The reference point may be the current location of the GNSS receiver and antenna and the reference direction may be reference direction 222 of FIG. 2A. In one embodiment, 608 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

With reference to FIG. 7, process 700 is a process for determining a working arm point angle of the crane. At 702, a Global Navigation Satellite System (GNSS) receiver is provided and coupled with a crane. The GNSS receiver may or may not be disposed on the crane. The GNSS receiver may have one or more antennas associated with it. The GNSS receiver is also communicatively coupled with one or more GNSS receiver antennas either by being physically coupled, coupled by a wire, or wireless. The antennas may be associated in a master slave relationship. The present technology may also incorporate a plurality of receivers each with their own antenna or plurality of antennas.

At 704, a first antenna for the GNSS receiver is disposed on a rotational pivot point of the crane. The antenna may be disposed, coupled, connected, mounted to any number of places along the crane that will move about a pivot point of the crane as the crane carries out normal operations. In one embodiment, the GNSS receiver antenna is mounted to the counterweight of a working arm of a crane.

For example, the crane may be tower crane 100 of FIG. 1A and the GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A each capable of receiving signals from one or more global positioning system (GPS) satellites. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1 of FIG. 1A) may be connected or coupled to tower crane 100 of FIG. 1A.

At 706, a second antenna for the GNSS receiver is disposed on a line drawn from a distal point of a boom assembly of the crane through the pivot point. In one embodiment, the second antenna is disposed on the counterweight of the crane. In one embodiment, the second antenna is disposed on the working arm of the crane. The GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A

At 708, the GNSS receiver is utilized to determine locations of the first antenna and the second antenna. For example, the GNSS receiver may be 150-1 of FIG. 1A. In one embodiment, GNSS receiver ceases to receive signals from the first antenna after determining the location of the first antenna. In one embodiment, 708 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

At 710, the locations of the first and the second antennae are utilized to determine a working arm pointing angle relative to a reference direction. For example, the reference direction may be reference direction 222 of FIG. 2A. In one embodiment, 710 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

With reference to FIG. 11, process 1100 is a process for calibrating a crane for crane geometry. At 1102, a Global Navigation Satellite System (GNSS) receiver antenna is disposed on a point along a boom assembly of the crane configured to pivot about a pivot point. The antenna may be disposed, coupled, connected, mounted to any number of places along the crane that will move about a pivot point of the crane as the crane carries out normal operations. The GNSS receiver antenna is also communicatively coupled with a GNSS receiver either by being physically coupled, coupled by a wire, or wireless. The GNSS receiver may or may not be disposed on the crane. The GNSS receiver may have one or more antennas associated with it. The antennas may be associated in a master slave relationship. The present technology may also incorporate a plurality of receivers each with their own antenna or plurality of antennas.

For example, the crane may be tower crane 100 of FIG. 1A and the GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A each capable of receiving signals from one or more global positioning system (GPS) satellites. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1 of FIG. 1A) may be connected or coupled to tower crane 100 of FIG. 1A.

At 1104, an approximate location of the pivot point is received. Such an approximate location may be known based on the location of the crane. In one embodiment, a processor may know the radius of a working arm or boom of the crane and thus know that the pivot point must fall within a circle comprising such a radius where the circle is centered on a location received from the GNSS receiver antenna.

At 1106, a working arm of the crane is rotated about the pivot point to at least two different positions.

At 1108, two locations are determined in a geo-referenced coordinate system of the at least two different positions. With two known locations, each location may described as a point surrounded by a circle where each circle has a radius that is equal to the radius of the working arm or boom of the crane. The portions where the two circles overlap may then be described as the approximate location of the pivot point.

At 1110, a location of the pivot point is determined based on the two locations and the approximate location of the pivot point. In one embodiment, 1110 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

At 1112, a current working arm pointing angle relative to a reference direction for any directional orientation of the working arm is determined based on a determined current location of the GNSS receiver antenna for the directional orientation and the location of the pivot point. In one embodiment, 1112 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13. 1112 is an optional step. If process 1100 does not include 1112, then process 1100 is only a process for calibrating for crane geometries. However, if 1112 is carried out, then process 1100 is also a process for determining a working arm pointing angle of the crane.

With reference to FIG. 12, process 1200 is a process for determining a working arm point angle of the crane. At 1202, a Global Navigation Satellite System (GNSS) receiver antenna is disposed on a point along a boom assembly of the crane configured to pivot about a pivot point. The antenna may be disposed, coupled, connected, mounted to any number of places along the crane that will move about a pivot point of the crane as the crane carries out normal operations. The GNSS receiver antenna is also communicatively coupled with a GNSS receiver either by being physically coupled, coupled by a wire, or wireless. The GNSS receiver may or may not be disposed on the crane. The GNSS receiver may have one or more antennas associated with it. The antennas may be associated in a master slave relationship. The present technology may also incorporate a plurality of receivers each with their own antenna or plurality of antennas.

For example, the crane may be a tower crane 100 of FIG. 1A and the GNSS receiver antenna may be any one of 124, 126, 128, and 130 of FIG. 1A each capable of receiving signals from one or more global positioning system (GPS) satellites. Each of GNSS receiver antennas 124, 126, 128, and 130 are connected to, coupled with, or otherwise in communication with a GNSS receiver. In one embodiment, the GNSS receiver (e.g., GNSS receiver 150-1 of FIG. 1A) may be connected or coupled to tower crane 100 of FIG. 1A.

At 1204, a location of the pivot point is received. In one embodiment, the location of the pivot point is determined using process 500. In one embodiment, the location of the pivot point is determined or known using any technique. In one embodiment, the location of the pivot point is determined by data from a GNSS receiver antenna located on the pivot point.

At 1206, a working arm of the crane is rotated about the pivot point to point in a current direction.

At 1208, a current location of the GNSS receiver antenna is determined. In one embodiment, 1208 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13.

At 1210, a current working arm pointing angle relative to a reference direction for the current direction of the working arm is determined based on the current location of the GNSS receiver antenna and the location of the pivot point. In one embodiment, 1210 is output 1308 of FIG. 13 and is generated by processor 1306 of FIG. 13. It should be appreciated that the process 1200 may be repeated any number of times or on a periodic basis to repeatedly determine the working arm pointing angle of the crane at various different times.

Computer System

With reference now to FIG. 8, portions of the technology for providing a communication composed of computer-readable and computer-executable instructions that reside, for example, in non-transitory computer-usable storage media of a computer system. That is, FIG. 8 illustrates one example of a type of computer that can be used to implement embodiments of the present technology. FIG. 8 represents a system or components that may be used in conjunction with aspects of the present technology. In one embodiment, some or all of the components of FIGS. 1-4 may be combined with some or all of the components of FIG. 8 to practice the present technology.

FIG. 8 illustrates an example computer system 800 used in accordance with embodiments of the present technology. It is appreciated that system 800 of FIG. 8 is an example only and that the present technology can operate on or within a number of different computer systems including general purpose networked computer systems, embedded computer systems, routers, switches, server devices, user devices, various intermediate devices/artifacts, stand-alone computer systems, mobile phones, personal data assistants, televisions and the like. As shown in FIG. 8, computer system 800 of FIG. 8 is well adapted to having peripheral computer readable media 802 such as, for example, a floppy disk, a compact disc, and the like coupled thereto.

System 800 of FIG. 8 includes an address/data bus 804 for communicating information, and a processor 806A coupled to bus 804 for processing information and instructions. As depicted in FIG. 8, system 800 is also well suited to a multi-processor environment in which a plurality of processors 806A, 806B, and 806C are present. Conversely, system 800 is also well suited to having a single processor such as, for example, processor 806A. Processors 806A, 806B, and 806C may be any of various types of microprocessors. System 800 also includes data storage features such as a computer usable volatile memory 808, e.g., random access memory (RAM), coupled to bus 804 for storing information and instructions for processors 806A, 806B, and 806C.

System 800 also includes computer usable non-volatile memory 810, e.g., read only memory (ROM), coupled to bus 804 for storing static information and instructions for processors 806A, 806B, and 806C. Also present in system 800 is a data storage unit 812 (e.g., a magnetic or optical disk and disk drive) coupled to bus 804 for storing information and instructions. System 800 also includes an optional alpha-numeric input device 814 including alphanumeric and function keys coupled to bus 804 for communicating information and command selections to processor 806A or processors 806A, 806B, and 806C. System 800 also includes an optional cursor control device 816 coupled to bus 804 for communicating user input information and command selections to processor 806A or processors 806A, 806B, and 806C. System 800 of the present embodiment also includes an optional display device 818 coupled to bus 804 for displaying information.

Referring still to FIG. 8, optional display device 818 of FIG. 8 may be a liquid crystal device, cathode ray tube, plasma display device, light emitting diode (LED) light-bar, or other display device suitable for creating graphic images and alpha-numeric characters recognizable to a user. Optional cursor control device 816 allows the computer user to dynamically signal the movement of a visible symbol (cursor) on a display screen of display device 818. Many implementations of cursor control device 816 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alpha-numeric input device 814 capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alpha-numeric input device 814 using special keys and key sequence commands.

System 800 is also well suited to having a cursor directed by other means such as, for example, voice commands. System 800 also includes an I/O device 820 for coupling system 800 with external entities. For example, in one embodiment, I/O device 820 is a modem for enabling wired or wireless communications between system 800 and an external network such as, but not limited to, the Internet. A more detailed discussion of the present technology is found below.

Referring still to FIG. 8, various other components are depicted for system 800. Specifically, when present, an operating system 822, applications 824, modules 826, and data 828 are shown as typically residing in one or some combination of computer usable volatile memory 808, e.g., random access memory (RAM), and data storage unit 812. However, it is appreciated that in some embodiments, operating system 822 may be stored in other locations such as on a network or on a flash drive; and that further, operating system 822 may be accessed from a remote location via, for example, a coupling to the internet. In one embodiment, the present technology, for example, is stored as an application 824 or module 826 in memory locations within RAM 808 and memory areas within data storage unit 812. The present technology may be applied to one or more elements of described system 800.

System 800 also includes one or more signal generating and receiving device(s) 830 coupled with bus 804 for enabling system 800 to interface with other electronic devices and computer systems. Signal generating and receiving device(s) 830 of the present embodiment may include wired serial adaptors, modems, and network adaptors, wireless modems, and wireless network adaptors, and other such communication technology. The signal generating and receiving device(s) 830 may work in conjunction with one or more communication interface(s) 832 for coupling information to and/or from system 800. Communication interface 832 may include a serial port, parallel port, Universal Serial Bus (USB), Ethernet port, antenna, or other input/output interface. Communication interface 832 may physically, electrically, optically, or wirelessly (e.g., via radio frequency) couple system 800 with another device, such as a cellular telephone, radio, or computer system.

The computing system 800 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the present technology. Neither should the computing environment 800 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example computing system 800.

The present technology may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The present technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer-storage media including memory-storage devices.

GNSS Receiver

With reference now to FIG. 9, a block diagram is shown of an embodiment of an example GNSS receiver which may be used in accordance with various embodiments described herein. In particular, FIG. 9 illustrates a block diagram of a GNSS receiver in the form of a general purpose GPS receiver 980 capable of demodulation of the L1 and/or L2 signal(s) received from one or more GPS satellites. For the purposes of the following discussion, the demodulation of L1 and/or L2 signals is discussed. It is noted that demodulation of the L2 signal(s) is typically performed by “high precision” GNSS receivers such as those used in the military and some civilian applications. Typically, the “consumer” grade GNSS receivers do not access the L2 signal(s). Further, although L1 and L2 signals are described, they should not be construed as a limitation to the signal type; instead, the use of the L1 and L2 signal(s) is provided merely for clarity in the present discussion.

Although an embodiment of a GNSS receiver and operation with respect to GPS is described herein, the technology is well suited for use with numerous other GNSS signal(s) including, but not limited to, GPS signal(s), Glonass signal(s), Galileo signal(s), and BeiDou signal(s).

The technology is also well suited for use with regional navigation satellite system signal(s) including, but not limited to, Omnistar signal(s), StarFire signal(s), Centerpoint signal(s), Doppler orbitography and radio-positioning integrated by satellite (DORIS) signal(s), Indian regional navigational satellite system (IRNSS) signal(s), quasi-zenith satellite system (QZSS) signal(s), and the like.

Moreover, the technology may utilize various satellite based augmentation system (SBAS) signal(s) such as, but not limited to, wide area augmentation system (WAAS) signal(s), European geostationary navigation overlay service (EGNOS) signal(s), multi-functional satellite augmentation system (MSAS) signal(s), GPS aided geo augmented navigation (GAGAN) signal(s), and the like.

In addition, the technology may further utilize ground based augmentation systems (GBAS) signal(s) such as, but not limited to, local area augmentation system (LAAS) signal(s), ground-based regional augmentation system (GRAS) signals, Differential GPS (DGPS) signal(s), continuously operating reference stations (CORS) signal(s), and the like.

Although the example herein utilizes GPS, the present technology may utilize any of the plurality of different navigation system signal(s). Moreover, the present technology may utilize two or more different types of navigation system signal(s) to generate location information. Thus, although a GPS operational example is provided herein it is merely for purposes of clarity.

In one embodiment, the present technology may be utilized by GNSS receivers which access the L1 signals alone, or in combination with the L2 signal(s). A more detailed discussion of the function of a receiver such as GPS receiver 980 can be found in U.S. Pat. No. 5,621,426. U.S. Pat. No. 5,621,426, by Gary R. Lennen, entitled “Optimized processing of signals for enhanced cross-correlation in a satellite positioning system receiver,” incorporated by reference which includes a GPS receiver very similar to GPS receiver 980 of FIG. 9.

In FIG. 9, received L1 and L2 signal is generated by at least one GPS satellite. Each GPS satellite generates different signal L1 and L2 signals and they are processed by different digital channel processors 952 which operate in the same way as one another. FIG. 9 shows GPS signals (L1=1575.42 MHz, L2=1227.60 MHz) entering GPS receiver 980 through a dual frequency antenna 901. Antenna 901 may be a magnetically mountable model commercially available from Trimble® Navigation of Sunnyvale, Calif., 94085. Master oscillator 948 provides the reference oscillator which drives all other clocks in the system. Frequency synthesizer 938 takes the output of master oscillator 948 and generates important clock and local oscillator frequencies used throughout the system. For example, in one embodiment frequency synthesizer 938 generates several timing signals such as a 1st LO1 (local oscillator) signal 1400 MHz, a 2nd LO2 signal 175 MHz, a (sampling clock) SCLK signal 25 MHz, and a MSEC (millisecond) signal used by the system as a measurement of local reference time.

A filter/LNA (Low Noise Amplifier) 934 performs filtering and low noise amplification of both L1 and L2 signals. The noise figure of GPS receiver 980 is dictated by the performance of the filter/LNA combination. The downconverter 936 mixes both L1 and L2 signals in frequency down to approximately 175 MHz and outputs the analogue L1 and L2 signals into an IF (intermediate frequency) processor 30. IF processor 950 takes the analog L1 and L2 signals at approximately 175 MHz and converts them into digitally sampled L1 and L2 inphase (L1 I and L2 I) and quadrature signals (L1 Q and L2 Q) at carrier frequencies 420 KHz for L1 and at 2.6 MHz for L2 signals respectively.

At least one digital channel processor 952 inputs the digitally sampled L1 and L2 inphase and quadrature signals. All digital channel processors 952 are typically identical by design and typically operate on identical input samples. Each digital channel processor 952 is designed to digitally track the L1 and L2 signals produced by one satellite by tracking code and carrier signals and to form code and carrier phase measurements in conjunction with the microprocessor system 954. One digital channel processor 952 is capable of tracking one satellite in both L1 and L2 channels.

Microprocessor system 954 is a general purpose computing device which facilitates tracking and measurements processes, providing pseudorange and carrier phase measurements for a navigation processor 958. In one embodiment, microprocessor system 954 provides signals to control the operation of one or more digital channel processors 952. Navigation processor 958 performs the higher level function of combining measurements in such a way as to produce position, velocity and time information for the differential and surveying functions. Storage 960 is coupled with navigation processor 958 and microprocessor system 954. It is appreciated that storage 960 may comprise a volatile or non-volatile storage such as a RAM or ROM, or some other computer readable memory device or media that is non-transitory in nature.

One example of a GPS chipset upon which embodiments of the present technology may be implemented is the Maxwell™ chipset which is commercially available from Trimble® Navigation of Sunnyvale, Calif., 94085.

Differential GPS

Embodiments described herein can use Differential GPS to determine position information with respect to a jib of the tower crane. Differential GPS (DGPS) utilizes a reference station which is located at a surveyed position to gather data and deduce corrections for the various error contributions which reduce the precision of determining a position fix. For example, as the GNSS signals pass through the ionosphere and troposphere, propagation delays may occur. Other factors which may reduce the precision of determining a position fix may include satellite clock errors, GNSS receiver clock errors, and satellite position errors (ephemerides).

The reference station receives essentially the same GNSS signals as rovers which may also be operating in the area. However, instead of using the timing signals from the GNSS satellites to calculate its position, it uses its known position to calculate errors in the respective satellite measurements. The reference station satellite errors, or corrections, are then broadcast to rover GNSS equipment working in the vicinity of the reference station. The rover GNSS receiver applies the reference station satellite corrections to its respective satellite measurements and in so doing, removes many systematic satellite and atmospheric errors. As a result, the rover GNSS receiver position estimates are more precisely determined. Alternatively, the reference station corrections may be stored for later retrieval and correction via post-processing techniques.

Real Time Kinematic System

An improvement to DGPS methods is referred to as Real-time Kinematic (RTK). The present technology employs RTK, however, in one embodiment, the working angle of the crane is determined without using RTK. As in the DGPS method, the RTK method, utilizes a reference station located at determined or surveyed point. The reference station collects data from the same set of satellites in view by the rovers in the area. Measurements of GNSS signal errors taken at the reference station (e.g., dual-frequency code and carrier phase signal errors) and broadcast to one or more rovers working in the area. The rover(s) combine the reference station data with locally collected carrier phase and pseudo-range measurements to estimate carrier-phase ambiguities and precise rover position. The RTK method is different from DGPS methods primarily because RTK is based on precise GNSS carrier phase measurements. DGPS methods are typically based on pseudo-range measurements. The accuracy of DGPS methods is typically decimeter- to meter-level; whereas RTK techniques typically deliver cm-level position accuracy.

RTK rovers are typically limited to operating within 70 km of a single reference station, Atmospheric errors such as ionospheric and tropospheric errors become significant beyond 70 km. “Network RTK” or “Virtual Reference Station” (VRS) techniques have been developed to address some of the limitations of single-reference station RTK methods.

Network RTK

Network RTK typically uses three or more GNSS reference stations to collect GNSS data and extract spatial and temporal information about the atmospheric and satellite ephemeris errors affecting signals within the network coverage region. Data from all the various reference stations is transmitted to a central processing facility, or control center for Network RTK. Suitable software at the control center processes the reference station data to infer how atmospheric and/or satellite ephemeris errors vary over the region covered by the network. The control center computer then applies a process which interpolates the atmospheric and/or satellite ephemeris errors at any given point within the network coverage area. Synthetic pseudo-range and carrier phase observations for satellites in view are then generated for a “virtual reference station” nearby the rover(s).

The rover is configured to couple a data-capable cellular telephone to its internal signal processing system. The surveyor operating the rover determines that he needs to activate the VRS process and initiates a call to the control center to make a connection with the processing computer. The rover sends its approximate position, based on raw GNSS data from the satellites in view without any corrections, to the control center. Typically, this approximate position is accurate to approximately 4-7 meters. The surveyor then requests a set of “modeled observables” for the specific location of the rover. The control center performs a series of calculations and creates a set of correction models that provide the rover with the means to estimate the ionospheric path delay from each satellite in view from the rover, and to take into account other error contributions for those same satellites at the current instant in time for the rover's location. In other words, the corrections for a specific rover at a specific location are determined on command by the central processor at the control center and a corrected data stream is sent from the control center to the rover. Alternatively, the control center may instead send atmospheric and ephemeris corrections to the rover which then uses that information to determine its position more precisely.

These corrections are now sufficiently precise that the high performance position accuracy standard of 2-3 cm may be determined, in real time, for any arbitrary rover position. Thus the GNSS rover's raw GNSS data fix can be corrected to a degree that makes it behave as if it were a surveyed reference location; hence the terminology “virtual reference station.” An example of a network RTK system which may be utilized in accordance with embodiments described herein is described in U.S. Pat. No. 5,899,957, entitled “Carrier Phase Differential GPS Corrections Network,” by Peter Loomis, assigned to the assignee of the present patent application and incorporated as reference herein in its entirety.

The Virtual Reference Station method extends the allowable distance from any reference station to the rovers. Reference stations may now be located hundreds of kilometers apart, and corrections can be generated for any point within an area surrounded by reference stations.

Determining a Plane of Rotation

Ideally, a crane is stationed in a level position during operation. More specifically, a crane is stationed at a level position such that when the crane rotates about a pivot point the crane rotates about a horizontal plane (i.e., the plane of rotation). For example, if a crane is level, then various rotatable portions of the crane (e.g., working arm, hook block, trolley etc.) will rotate along a horizontal plane, i.e., a plane perpendicular to the local gravity vector (assuming the various rotatable portions of the crane are not actively being moved up or down while being rotated about the pivot point). “Horizontal plane” shall refer to such a perpendicular orientation relative to the local gravity vector.

The operation of the crane may be negatively affected if the crane is not level. For example, a crane may include a collision avoidance zone that defines an area that the crane (e.g., working arm, hook block, etc.) may not enter such that the crane does not collide with another object. The collision avoidance zone may be defined by a building information modeling (BIM). In general, a BIM provides, among other things, the coordinates of various features (e.g., drop off/pick up locations, walls, safety zones, etc.) of a building and/or construction site.

If the crane is not level, the plane of rotation is also not horizontal. As a result, portions of the crane may inadvertently enter the collision avoidance zone and possibly contact an object which may damage the crane and/or cause injury to the crane operator or others in the vicinity of the object.

In another example, a BIM includes a drop off point for a load (e.g., load 118) of a crane. If the plane of rotation is not horizontal (and not accounted for), the location of the load may be above or below the designated drop off point. As a result, construction delays may occur and/or injury to individuals in proximity to the designated drop off point.

As will be described in detail below, at least one GNSS receiver antenna is disposed at one of various locations on a rotatable portion of a crane to facilitate in determining a plane of rotation of a crane. As the rotatable portion of the crane rotates about a pivot point, the GNSS receiver antenna travels along a plane of rotation (assuming the GNSS receiver antenna is not moving up or down for any reason except for any tilt from horizontal of the plan of rotation).

In other words, the GNSS receiver antenna travels along a plane of rotation when the GNSS receiver antenna is held constant in the z-axis (e.g., up or down). That is, nothing is actively moving or manipulating the height of the rotatable portion of the crane as it is being rotated about pivot point 1612. For example, nothing actively raises or lowers the rotatable portion of the crane (e.g., user input) as it rotates about pivot point 1612. However, in one embodiment, user input may be provided to rotate the rotatable portion about pivot point 1612.

At least three locations of the GNSS receiver are determined to facilitate in calculating the plane of rotation. Once the plane of rotation is determined, a tilt angle and/or tilt direction may be calculated to determine/confirm whether the crane is level or not.

More data points may result in a better estimate of the true tilt angle. In addition to finding the tilt angle, which is defined as the angular displacement from local vertical to the normal vector (normal to the plane of rotation), it is possible to determine the direction of the tilt angle in terms of a compass heading, based on geo-referenced data from the GNSS receiver. This direction of tilt angle may be found directly from the components of the normal vector, as will be described in further detail below.

FIG. 16A depicts an embodiment of a top view of GNNS receiver antenna 1602 rotating along plane 1600. In particular, GNSS receiver antenna 1602 rotates about pivot point 1612 of a crane while disposed on a rotated portion of the crane. In one embodiment, GNSS receiver antenna 1602 is disposed on working arm 1604 of a crane.

GNSS receiver antenna 1602 can be located at any rotatable portion of the crane that is offset from pivot point 1612. For example, GNSS receiver antenna 1602 can be located on or in a cab, working arm (e.g., boom, jib, anti-jib, mast), counterweight, trolley, etc.

In another example, referring to FIG. 1A, GNSS receiver antenna 124 is located on counterweight 108, and GNSS receiver antenna 126 is located on trolley 114, GNSS receiver antenna 128 is located on working arm 110, and GNSS receiver antenna 130 is located in cab 106. It is noted that counterweight 108, trolley 114, working arm 110 and cab 106 are rotatable portions of the crane that rotate about a pivot point and that GNSS receiver antenna(e) used for determining a plane of rotation or tilt angle of the crane may be located on any one or all of such rotatable portions. Accordingly, the respective GNSS receiver antenna(e) also rotate about the pivot point.

In a further example, referring to FIG. 1B, GNSS receiver antenna 130 is located in cab 106, GNSS receiver antenna 163 is located on base 161, GNSS receiver antenna 169 is located on jib 168, GNSS receiver antenna 170 is located on hook block 120, GNSS receiver antenna 171 is located on boom 165. It is noted that cab 106, base 161, jib 168, hook block 120 and boom 165 rotate about axis 167 and that GNSS receiver antenna(e) used for determining a plane of rotation or tilt angle of the crane may be located on any one or all of such rotatable portions and/or on other such rotatable portions. Accordingly, the respective GNSS receiver antennas also rotate about axis 167 or pivot point.

Moreover, referring to FIG. 15, GNSS receiver antenna 1504 is located on base 1503 of crane 1502, and GNSS receiver antenna 1506 is located on working arm 1526. Base 1503 and working arm 1525 each rotate about pivot point 1510. Accordingly, it is noted that GNSS receiver antenna 1504 and GNSS receiver 1506 also rotate about pivot point 1510 and that GNSS receiver antenna(e) used for determining a plane of rotation or tilt angle of the crane may be located on any one or all of such rotatable portions and/or on other such rotatable portions.

In various embodiments, the crane can be any crane that is able to rotate at least a portion of the crane around pivot point 1612, such as but not limited to a tower crane, a luffing crane, a level luffing crane, a fixed crane, a mobile crane, a self-erecting crane, a crawler crane, a telescopic crane, etc.

In various embodiments, a plurality of GNSS receiver antennas are disposed on a crane at various locations. In one example, referring to FIG. 1A, GNSS receiver antenna 124 is located on counterweight 108, and GNSS receiver antenna 126 is located on trolley 114, GNSS receiver antenna 128 is located on working arm 110, and GNSS receiver antenna 130 is located in cab 106.

In another example, referring to FIG. 1B, GNSS receiver antenna 130 is located in cab 106, GNSS receiver antenna 163 is located on base 161, GNSS receiver antenna 169 is located on jib 168, GNSS receiver antenna 170 is located on hook block 120, GNSS receiver antenna 171 is located on boom 165.

In yet another example, referring to FIG. 15, GNSS receiver antenna 1504 is located on base 1503 of crane 1502, and GNSS receiver antenna 1506 is located on working arm 1526.

Multiple GNSS receiver antennas located at various locations may be used for various reasons. For example, a signal of one or more antennas may be blocked. However, signals of one or more other antenna may be available for use. Additionally, plane of rotation/tilt angle information calculated from more than one of a plurality of antennae may be averaged or otherwise combined into a single result.

As GNSS receiver antenna 1602 pivots around pivot point 1612, the coordinates of at least three locations are determined. For example, the coordinates of location 1620, 1621 and 1622 are determined. It should be appreciated that the coordinates of at least three arbitrary locations are to be determined in order to calculate the plane of rotation (e.g., plane 1600). In one embodiment, the coordinates are determined of three locations that are equidistant from one another other. In another embodiment, the coordinates of three locations for a plurality of GNSS receiver antennas are calculated.

FIG. 16B is an embodiment of a side-view of plane 1600 with respect to horizontal plane 1605. Plane 1600 includes normal vector 1610, and horizontal plane 1605 includes normal vector 1615, also known as the gravity vector.

FIG. 16C is an embodiment of plane 1600 in a 3-D coordinate system. For example, GNSS receiver antenna 1602 pivots around pivot point 1612, the coordinates of at least three locations are determined that define plane 1600. Plane 1600 is depicted in relation to a 3-D coordinate system, where for example, the X-axis and Y-axis are along a horizontal plane and the Z-axis is normal to the X-Y plane.

The equation for a plane based on at least three points is: a(x−x ₀)+b(y−y ₀)+c(z−z ₀)=0  (EQUATION 3) wherein x₀, y₀, z₀, are any points on the plane, and the normal vector, V_(n), is <a, b, c>. It should be appreciated that other equations may be utilized to determine a plane based on three points. The vector components a, b, and c are also known as direction cosines, and may be used to calculate the tilt angle and compass direction of the tilt angle.

In one example, the three points are: P₁(x₁, y₁, z₁), P₂(x₂, y₂, z₂), and P₃(x₃, y₃, z₃). For instance, P₁, P₂, and P₃, are locations 1620, 1621, and 1622, respectively.

Two different vectors, V₁ and V₂, are determined that are parallel to the line segments connecting the points on the plane. For example, V₁ is the vector between P₁ and P₂, and V₂ is the vector between P₁ and P₃.

A normal vector, V_(n) (e.g., normal vector 1610 or 1615) is determined from the cross-product of V₁ and V₂. For example, V_(n)=<a, b, c> as described above. Accordingly, the equation of a plane (e.g., plane 1600) can be determined based on at least three points (locations 1620, 1621, and 1622) along the plane.

The crane is determined not to be level if there is a non-zero angle 1630 between the plane of rotation (e.g., plane 1600) of GNSS receiver antenna 1602 and horizontal plane 1605. In other words, the plane of rotation is tilted as shown at 1600 in FIG. 16B.

The angle between planes can be defined to be the angle between their normal vectors. For example, angle 1631 (which is equal to angle 1630) is the angle between normal vector 1615 of horizontal plane 1605, and normal vector 1610 of plane 1600.

In particular, in one embodiment, the angle between planes (e.g., angle 1631) is defined as: cos α=V _(n1) ·V _(n2) /|V _(n1) ∥V _(n2)|  (EQUATION 4)

wherein V_(n1) is the normal vector of a first plane (e.g., plane 1600), and V_(n2) is the normal vector of a second plane (e.g., plane 1605).

The compass direction of normal vector may also be determined. The direction of the normal vector can be viewed as the angle of normal vector with respect to the x, y, and/or z axis'. For example, the direction of the normal vector can be expressed in terms of an angle with respect to the x-axis, y-axis, and/or z-axis.

Determining Tilt Angle in a Spherical or Polar Coordinate System

The tilt angle is the angle of the normal vector relative to the local vertical vector. It is easier to visualize the tilt angle when using spherical or polar coordinates rather than Cartesian coordinates.

In a spherical coordinate system, a point in space is defined by three numbers: the radial distance of that point from the origin, the inclination angle, or polar angle Theta, θ, from a zenith direction, given by the local vertical vector, and the azimuth angle Phi, φ.

The components are shown in FIG. 16D. Referring now to FIG. 16D, the X and Y axes may be aligned with a geo-referenced coordinate system. For example, the X axis corresponds to East and the Y axis corresponds to North. Theta, θ, is the tilt angle, and Phi φ is the compass direction of the tilt angle, as measured from true East in this example.

It remains to perform a conversion on the normal vector as determined in the Cartesian coordinate system to find the tilt angle Theta, θ, and the direction of tilt angle Phi φ either in terms of degrees from East, as shown in FIG. 16D, or degrees from North.

The spherical coordinates (radius r, inclination θ, azimuth φ) of a point can be obtained from its Cartesian coordinates (x, y, z) by the formulae:

$\begin{matrix} {r = \sqrt{x^{2} + y^{2} + z^{2}}} & \left( {{EQUATION}\mspace{14mu} 5} \right) \\ {\theta = {\arccos\left( \frac{z}{r} \right)}} & \left( {{EQUATION}\mspace{14mu} 6} \right) \\ {\varphi = {\arctan\left( \frac{y}{x} \right)}} & \left( {{EQUATION}\mspace{14mu} 7} \right) \end{matrix}$ In the current case, the radius r is defined as the unit vector 1.

The first thing to note is that data for the tilted circle described by a rotating boom with a GNSS receiver will be given in WGS-84 world coordinates, which will display latitude, longitude, and altitude. Such coordinates could also be translated into a local coordinate system, where there is an x, y, z reference system, which may be located anywhere on the construction site. For the sake of simplicity an example is given where the coordinate system is referenced to the center pivot axis of the crane system; that point is 0, 0, 0, in order to simplify number manipulations. It could be any other numbering system. The other essential item to take note of is that the local vertical axis z is parallel to the local gravity vector, so the x-y plane is horizontal.

FIG. 16E depicts an embodiment of a side-view of crane 1601 rotating about a pivot point 1612. It is noted that, in this example, crane 1601 is sitting level along the X-Y plane and rotates about the Z-axis. For example, as GNSS receiver antenna 1602 pivots around pivot point 1612, the coordinates of at least three locations are determined that define plane 1600. Plane 1600 is depicted in relation to a 3-D coordinate system, where for example, the X-axis and Y-axis are along a horizontal plane and the Z-axis is normal to the X-Y plane.

FIG. 16F depicts an embodiment of a side-view of crane 1601 rotating about a pivot point 1612. In one embodiment, crane 1601 is a crawler crane; however, the illustrated example is applicable to other types of cranes. It is noted that, in this example, crane 1601 is sitting not sitting on a level surface. For example, as GNSS receiver antenna 1602 pivots around pivot point 1612, the coordinates of at least three locations are determined that define plane 1600. Based on the various equations, as described above, the tilt angle (e.g., angle 1631) and direction of the tilt may be determined. It should be appreciated that the tilt or orientation of crane 1601 is similar to the tilt or orientation of a crane with respect to at least FIG. 16B.

Still referring to at least FIG. 16F, a tilt angle compass direction may be in a North by North East direction. The vector components of the tilt angle itself have an x component given by the a value of the normal vector, and a y component given by the b value of the normal vector. The tilt angle Theta has a side adjacent to theta with a y component, and a side opposite theta with an x component. The angle of compass direction theta from North (e.g., y direction) may be found from the “a” and “b” elements of the normal vector by finding the arctan of the x component divided by the y component, or arctan [a/b]. The magnitude of the tilt angle is given by the arc cosine of the ratio of z/r. Z may consist of components of x, y, and z.

In another example, the plane of rotation is tilted downward directly in the y direction (e.g., North). The data for this case is shown in Table 1 provided below. The format for data defines coordinates Po, P1, and P2, each with coordinate components [x, y, and z].

For the sake of simplicity, Po is taken as the center of rotation. For additional simplicity, this rotation center is defined the origin of the world coordinate system and therefore has coordinates [0, 0, 0]. The other simplification is to scale the length of the boom to unity, so that for example a 100 foot long boom is divided by its length to give a reference length of 1.0. All other lengths/distances may be scaled in the same way. P1, the extreme end point at the tip of the crane boom in the y direction has coordinates [0, 1, −0.0872]. In other words, the boom is tilted downward so that the tip is 0.08715 units below the horizontal plane (e.g., 8.72 feet on a 100 foot boom). In this example, it is assumed that there is no tilt along the x axis, and so P3 may be taken as [1, 0, 0] indicating it is as the right hand side of the plane of rotation, along the x axis, with no vertical displacement.

TABLE 1 Points for a tilted axis in the Y direction X Y Z Po 0 0 0 P1 0 0.996194 −0.087155 P2 1 0 0 The three equations in the three unknowns, a, b and c may be found by solving the following matrix equation.

${\begin{matrix} {x - 0} & {y - 0} & {z - 0} \\ {0 - 0} & {0.996194 - 0} & {\left\lbrack {- 0.087155} \right\rbrack - 0} \\ {1 - 0} & {0 - 0} & 0 \end{matrix}} = 0$

The equation of the plane tilted in the Y axis direction is given by: −0.08715y−0.996194z=0.

Thus the normal vector for this tilted plane is [0, −0.08715, −0.996194]. Note that the “a” component of the normal vector is zero, as there is no coefficient for x.

The tilt angle is the arccos [−0.996194]=5 degrees.

The direction of the tilt angle in terms of a compass heading may be found from the arctan [a/b] which is in this case arctan [0/0.0872]=0, or directly along the y axis, aiming North.

In another example, the tilt angle for a crawler crane is shown. The boom length is Ld. The offset from crawler body axis of rotation to boom pivot is OF. The height H above boom pivot=L cos [Boom elevation angle, BEA].

Since body of the crawler crane is tilted, the axis of tilt rotation is at the base of the crawler crane body. It does not affect the determination of the normal vector to the plane of rotation but does affect the location of the axis of rotation by an amount H sin [tilt angle].

The data for a crawler crane is shown. Radius of circle of rotation=offset OF+L cos [BEA]=R1.

The data may be normalized to the radius of rotation of the system, as before, is shown in Table 2. The tilt angle is also in another direction from the previous example.

TABLE 2 Points for a tilted axis in an arbitrary direction X Y Z Po 0 0 0 P1 .66446 .66446 −0.34202 P2 0.7071 −0.7071 0

Performing the matrix solution, the equation of the tilted plane is given by 0.24184x+0.24184y+0.93967z=0. The tilt angle is the arc cosine of the z component: arcos(0.93967)=20 degrees.

The tilt direction is given by the arc tangent of the y component divided by the x component: arctan(0.24184/0.24184)=arctan(1)=45 degrees, as measured from the x axis, in the direction of North East.

In another embodiment, evaluating the size of the tilt angle is determined by comparing the range of the altitude measurements for the data points collected as the boom is rotated. If the range between highest and lowest points in the collection of data exceeds a specified threshold, then the tilt angle exceeds a related threshold. In one example, the data is taken over at least a 200 degree arc of rotation, and over at least 270 degrees of rotation. If acceptable tilt angle is defined to be less than 1 degree, then the range from highest point to lowest point will be 2r sin(1)=0.03490 r. For a 40 foot radius boom, that is about 1.4 feet of tilt range. This embodiment may be employed as a simple test that can be performed on the measured data for a quick check.

FIG. 16G depicts an embodiment of crane system 1650. Crane system 1650 includes crane 1601. In particular, GNSS receiver antenna 1602 is disposed on working arm 1604, and GNSS receiver 1603 is disposed on the body (e.g., inside the cab) of crane 1601.

As the cab and working arm of the crane rotate about pivot point 1612, signals from GNSS receiver antennas 1602 and 1603 are transmitted to GNSS receiver 1660. GNSS receiver 1660 can be located at any location (e.g., on the crane, near the crane, etc.) such that is able to receive signals from associated GNSS receiver antennas.

GNSS receiver 1660 is able to determine the coordinates of at least three locations of the GNSS receiver antennas as they rotate about pivot point 1612.

Processor 1665 receives the coordinates from GNSS receiver 1660 and subsequently calculates the tilt direction and/or tilt angle of the plane of rotation of the GNSS receiver antennas, as described above.

In various embodiments, if it is determined that plane 1600 is not horizontal (or level) based on the calculations, as described above, then an indication is provided that the crane is not level.

It should be appreciated that a plane of rotation, tilt angle, tilt directions are determined for a plurality of GNSS receiver antennas.

In one embodiment, an indication that the crane is not level is displayed on a display within the cab, such as on a user interface (e.g., user interface 137) of crane 1601. The indication can be any visual warning signal, such as a flashing light, text indicating that the crane is not level, the actual angle of tilt, etc.

In another embodiment, the user interface (e.g., user interface 137) includes a panel having a plurality of lights corresponding to a location of the crane. For example, four lights in the pattern of a square, where each light corresponds to a corner of the crane. In such an example, if the crane is angled downward in the forward right direction, then the light corresponding to the forward right direction emits light to indicate that the crane is tilted in that direction.

In a further embodiment, a sound is generated to indicate that the crane is not level. The sound may be emitted in cooperation with a visual warning is displayed.

The crane (e.g., crane 1601) may be repositioned to a level position in response to an indication (e.g., visual, aural, etc.) that the crane is not level.

In one embodiment, if a crane has levelling features (e.g., outriggers, jacks, etc.), the crane operator may control the leveling features such that they are physically manipulated to reorient the crane to a level position. For example, an outrigger may be controlled via a control within the cab of the crane. Accordingly, a crane operator is able to physically control the outrigger via the controls within the cab to level the crane.

In one embodiment, the non-levelness of the crane may be accounted for during operation of the crane. For example, a crane is determined to not be level and a tilt angle is calculated. As such, a BIM may be updated with the tilt angle such that the operation of the crane is modified to account for the tilt angle (without requiring the crane to be reoriented to a level position).

In such an example, a BIM initially indicates that a load is to have a drop off point at a location having a 100 ft elevation. However, in light of the tilt angle, the crane would provide the load at an incorrect location at a 95 ft elevation. Accordingly, the BIM may be updated to account for the tilt angle such that the load will be provided at the location at the correct elevation of 100 ft.

In another example, a visual indication communicates that the crane is tilted downwards in the right front direction. As such, a crane operator manipulates the right front outrigger such that it raises the crane upwards in the right front direction so that the crane becomes level.

Various other leveling mechanisms may be used in cooperation with the crane leveling determination, as described above, to confirm that the crane is level. For example, a bubble level may be integrated with the crane and/or placed on a crane to determine that a crane is level.

Example Methods of Operation

The following discussion sets forth in detail the operation of some example methods of operation of embodiments. With reference to FIGS. 17 and 18, flow diagrams 1700 and 1800 that illustrates example procedures used by various embodiments. Flows diagrams 1700 and 1800 may include some procedures that, in various embodiments, are carried out by a processor under the control of computer-readable and computer-executable instructions. In this fashion, procedures described herein and in conjunction with flow diagrams 1700 and 1800 are, or may be, implemented using a computer, in various embodiments. The computer-readable and computer-executable instructions can reside in any tangible computer readable storage media. Some non-limiting examples of tangible computer readable storage media include random access memory, read only memory, magnetic disks, solid state drives/“disks,” and optical disks, any or all of which may be employed with a survey device and/or a base station. The computer-readable and computer-executable instructions, which reside on tangible computer readable storage media, are used to control or operate in conjunction with, for example, one or some combination of processors of the survey device and/or a base station. It is appreciated that the processor(s) may be physical or virtual or some combination (it should also be appreciated that a virtual processor is implemented on physical hardware). Although specific procedures are disclosed in flow diagrams 1700 and 1800, such procedures are examples. That is, embodiments are well suited to performing various other procedures or variations of the procedures recited in flow diagrams 1700 and 1800. Likewise, in some embodiments, the procedures in flow diagrams 1700 and 1800 may be performed in an order different than presented and/or not all of the procedures described in one or more of these flow diagrams may be performed. It is further appreciated that procedures described in diagrams 1700 and 1800 may be implemented in hardware, or a combination of hardware with firmware and/or software.

FIG. 17 depicts a flow diagram for a method for determining a tilt angle of a crane, according to various embodiments.

At 1710 of method 1700, a portion of the crane is rotated about a pivot point, wherein a Global Navigation Satellite System (GNSS) receiver antenna is disposed on the portion of the crane. For example, GNSS receiver antenna 1602 is disposed on a cab any other portion of the crane, and the portion of the crane is rotated about pivot point 1612. The GNSS receiver antenna is coupled to a GNSS receiver 1660 which decodes signals received at the antenna to determine the location of the antenna. As has been indicated herein, in some embodiments, one, two, or more that two or more GNSS receiver antennae may be disposed on rotatable portions of the crane.

In one embodiment, in response to the initiation of a levelling mode, the rotation is performed automatically without requiring additional user input. For example, a crane operator may enter instructions on a user interface or activate a button on the user interface to initiate an automatic levelling mode or automatic tilt angle determination mode.

In another embodiment, the rotation is provided by manual input. For example, a crane operator operates the crane such that the portion of the crane is rotated about pivot point 1612.

At 1720, at least three locations of the GNSS receiver antenna are determined by a GNSS receiver in a geo-referenced coordinate system during the rotating. For example, the crane (e.g., crane 160) rotates about pivot point 1612 while the GNSS receiver antenna 1602 is held at a constant height (e.g., not actively moved up or down by user input). While the GNSS receiver antenna pivots around pivot point 1612, it passes through at least three locations, such as locations 1620, 1621 and 1622. While at the three locations, signals of the GNSS receiver antenna are transmitted to and received by GNSS receiver 1660. Accordingly, GNSS receiver 1660 is able to determine the three locations of the GNSS receiver antenna.

In various embodiments, the portion of the crane may pause at the at least three locations such that the GNSS receiver 1660 is able to determine the geo-referenced coordinates of the GNSS receiver antenna(s). Automatic rotation then continues and/or instruction is provided to the operator to rotate to the next location.

In various embodiments, more than three locations of the GNSS receiver antenna are determined, for example, by the GNSS receiver. It should be appreciated that the calculation of the plane of rotation of the GNSS receiver antenna increases in accuracy in relation to the number of determined locations of the GNSS receiver antenna.

At 1730, determine, by a processor, a tilt angle of the crane based on the at least three locations of the GNSS receiver antenna. For example, GNSS receiver antenna travels along plane 1600. Processor 1665 determines that there is an angle 1630 between plane 1600 and horizontal plane 1605. Accordingly, angle 1630 is a tilt angle of the crane that is calculated by processor 1665 based on locations 1620, 1621 and 1622 of GNSS receiver antenna 1602.

In another example, the tilt angle is determined by the equation cos α=V_(n1)·V_(n2)/|V_(n1)∥V_(n2)|, where V_(n1) is the normal vector of a first plane (e.g., plane 1600), and V_(n2) is the normal vector of a second plane (e.g., plane 1605).

At 1740, the GNSS receiver antenna is disposed on the portion of the crane. For example, GNSS receiver antenna 1602 is disposed on (or in) or integrated with the portion of the crane that is able to be rotated about pivot point 1612.

At 1750, the tilt angle is provided for use in leveling the crane. For instance, a processor 1665 calculates the tilt angle (e.g., angle 1630). The tilt angle may then be utilized to facilitate in leveling the crane.

In one such example, the tilt angle is displayed on a display screen. The crane operator may then physically manipulate levelling features (e.g., outriggers) to reorient the crane to a level position.

At 1760, the tilt angle is accounted for during operation of the crane. For example, it is determined that the crane is not level because of the presence of angle 1630. Due to the non-levelness of the crane various incorrect operations may occurs, such as an incorrect drop location. A BIM may be updated to account for the tilt angle. Accordingly, any errant operations that may have occurred due to the tilt angle are cured, such as a recalculation of the drop location to accommodate for the tilt angle.

At 1770, levelness of the crane is confirmed based on the tilt angle. For example, if angle 1630 is zero (or nearly zero) it can be confirmed that plane 1600 is a horizontal plane, and therefore level. In particular, plane 1605 is a horizontal plane. Therefore, if the angle between plane 1600 and plane 1605 is zero then it is determined that plane 1600 is also horizontal.

At 1780, a plane which encompasses the three locations in the geo-referenced coordinate system is determined. Then, an angle of the plane with respect to a notional level plane in the geo-referenced coordinate system is calculated.

For example, plane 1600 is calculated, by processor 1665, based on GNSS receiver antenna 1602 passing through locations 1620, 1621 and 1622 while it pivots around pivot point 1612. Additionally, angle 1630 (or angle 1631) is determined with respect to horizontal (or level) plane 1605) in the geo-referenced coordinate system.

At 1790, in one embodiment, a normal vector of the plane is determined. For example, the normal vector 1610 of plane 1600 is determined. Referring to at least Equation 3, the normal vector, V_(n), is <a, b, c>. It should be appreciated that other equations may be utilized to determine a plane based on three points. The vector components a, b, and c are also known as direction cosines, and may be used to calculate the tilt angle and compass direction of the tilt angle.

At 1795, a direction of the tilt angle in the geo-referenced coordinate system is determined. For example, the direction of normal vector 1610 of plane 1600 is determined in the geo-referenced coordinate system. More specifically, the coordinates of Po, P1, and P2, are shown in Table 2.

Accordingly, the tilt direction is given by the arc tangent of the y component divided by the x component: arctan(0.24184/0.24184)=arctan(1)=45 degrees, as measured from the x axis, in the direction of North East.

FIG. 18 depicts a flow diagram for a method for determining a tilt angle of a crane, according to various embodiments.

At 1810, data is accessed from a GNSS receiver antenna at three positions of a rotatable portion of a crane as the rotatable portion of the crane rotates about a pivot point. For example, GNSS receiver antenna 1602 transmits location data to GNSS receiver 1660 as the GNSS receiver antenna is located at positions 1620, 1621 and 1622 (or any three positions) while the crane rotates about pivot point 1612.

At 1820, three locations of the GNSS receiver antenna are determined in a geo-referenced coordinate system for the three positions of the rotatable portion of the crane. For example, GNSS receiver 1660 accesses the location signals of the GNSS receiver antenna while at the three locations and determines the locations in a geo-referenced coordinate system.

At 1830, a tilt angle of the crane is determined based on the three locations of the GNSS receiver antenna. For example, a processor 1665 receives the data from of the three positions and calculates a plane of rotation of the GNSS receiver antenna (e.g., plane 1600). Additionally, the processor calculates a tilt angle (e.g., angle 1630) between plane 1600 and a horizontal plane 1605.

At 1840, the tilt angle is displayed. For example, the calculated angle 1630 is displayed on user interface 137. As a result, a crane operator is aware of the non-levelness of the crane and be able to make the appropriate adjustments to level the crane or to at least take account for the non-levelness of the crane.

At 1850, the tilt angle is accounted for during the operation of the crane. For example, a BIM may be adjusted to account for tilt angle of the crane.

At 1860, a BIM is adjusted based on the tilt angle. For example, due to the non-levelness of the crane various incorrect operations may occurs, such as an incorrect drop location. A BIM may be updated to account for the tilt angle. Accordingly, any errant operations that may have occurred due to the tilt angle are cured, such as a recalculation of the drop location to accommodate for the tilt angle.

At 1870, levelness of the crane is confirmed based on the tilt angle. For example, if angle 1630 is zero (or nearly zero) it can be confirmed that plane 1600 is a horizontal plane, and therefore level. In particular, plane 1605 is a horizontal plane. Therefore, if the angle between plane 1600 and plane 1605 is zero then it is determined that plane 1600 is also horizontal.

At 1880, a plane which encompasses the three locations in the geo-referenced coordinate system is determined. Then, an angle of the plane with respect to a notional level plane in the geo-referenced coordinate system is calculated.

For example, plane 1600 is calculated based on GNSS receiver antenna 1602 passing through locations 1620, 1621 and 1622 while it pivots around pivot point 1612. Additionally, angle 1630 (or angle 1631) is determined with respect to horizontal (or level) plane 1605) in the geo-referenced coordinate system.

At 1890, in one embodiment, a normal vector of the plane is determined. For example, the normal vector 1610 of plane 1600 is determined. Referring to at least Equation 3, the normal vector, V_(n), is <a, b, c>. It should be appreciated that other equations may be utilized to determine a plane based on three points. The vector components a, b, and c are also known as direction cosines, and may be used to calculate the tilt angle and compass direction of the tilt angle.

At 1895, a direction of the tilt angle in the geo-referenced coordinate system is determined. For example, the direction of normal vector 1610 of plane 1600 is determined in the geo-referenced coordinate system. More specifically, the coordinates of Po, P1, and P2, are shown in Table 1.

Accordingly, the tilt angle is the arccos [−0.996194]=5 degrees. The direction of the tilt angle in terms of a compass heading may be found from the arctan [a/b] which is in this case arctan [0/0.0872]=0, or directly along the y axis, aiming North.

FIG. 19 depicts a flow diagram for a method for determining levelness of a crane, according to various embodiments.

At 1910, a portion of the crane is rotated at least one-half way about a pivot point, wherein a Global Navigation Satellite System (GNSS) receiver antenna is disposed on the portion of the crane. For example, GNSS receiver antenna 1602 is disposed on a cab any other portion of the crane, and the portion of the crane is rotated at least half way about pivot point 1612. The GNSS receiver antenna is coupled to a GNSS receiver 1660 which decodes signals received at the antenna to determine the location of the antenna. As has been indicated herein, in some embodiments, one, two, or more that two or more GNSS receiver antennae may be disposed on rotatable portions of the crane.

In one embodiment, the portion of the crane is not required to rotate completely around the pivot point. For example, the GNSS receiver antenna rotates partially around the pivot point (e.g., ⅔rds or ¾ths around the pivot point).

At 1920, at least a first location and a second location of the GNSS receiver antenna are determined by a GNSS receiver in a geo-referenced coordinate system during the rotating. For example, the crane (e.g., crane 160) rotates about pivot point 1612 while the GNSS receiver antenna 1602 is held at a constant height (e.g., not actively moved up or down by user input). While the GNSS receiver antenna pivots around pivot point 1612, it passes through at least two locations, such as locations 1620 and 1622.

While at the two locations, signals of the GNSS receiver antenna are transmitted to and received by GNSS receiver 1660. Accordingly, GNSS receiver 1660 is able to determine the at least two locations of the GNSS receiver antenna. In one embodiment, the locations are substantially on opposites sides of the arc travelled by the GNSS receiver antenna.

At 1930, a height differential between the first location and the second location is determined by a processor. For example, a height (or elevation) of the first location and the second location are determined. The difference between the two determine heights is the height differential between the first location and the second location.

At 1940, levelness of the crane is confirmed based on the height differential. For example, a pre-determined height differential threshold (e.g., 6-12 inches) is generated. As such, if the difference in height (e.g., 5 inches) is below the threshold then the crane can be deemed as level. However, if the difference in height (e.g., 20 inches) is greater than the threshold, then the crane is deemed to be not level. As such, various levelling methods, as described herein, may be employed to level the crane.

Although the subject matter is described in a language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. 

The invention claimed is:
 1. A method for determining a tilt angle of a crane, said method comprising: rotating a portion of said crane about a pivot point, wherein a Global Navigation Satellite System (GNSS) receiver antenna is disposed on said portion of said crane; determining, by a GNSS receiver, at least three locations of said GNSS receiver antenna in a geo-referenced coordinate system during said rotating; calculating, by a processor, a plane of rotation based on said at least three locations of said GNSS receiver antenna; and determining, by said processor, a tilt angle of said crane based on an angular difference between said plane of rotation and a horizontal plane, wherein said tilt angle includes an angular displacement from a first vector normal to said horizontal plane to a second vector normal to said plane of rotation about said pivot point.
 2. The method of claim 1, wherein said GNSS receiver antenna is disposed on a location on said crane selected from a group consisting of: a cab, a working arm, a counterweight, a boom and a trolley.
 3. The method of claim 1, wherein said crane is selected from a group consisting of: a tower crane, a luffing crane, a level luffing crane, a fixed crane, a self-erecting crane, a crawler crane, and a telescopic crane.
 4. The method of claim 1, further comprising: providing said tilt angle for use in leveling said crane.
 5. The method of claim 1, further comprising: accounting for said tilt angle during operation of said crane.
 6. The method of claim 1, further comprising: confirming levelness of said crane based on said tilt angle.
 7. The method of claim 1, wherein said determining a tilt angle of said crane based on said at least three locations of said GNSS receiver antenna comprises: determining a plane which encompasses said at least three locations in said geo-referenced coordinate system; and calculating an angle of said plane with respect to a notional level plane in said geo-referenced coordinate system.
 8. The method of claim 7, further comprising: determining a normal vector of said plane.
 9. The method of claim 1, further comprising: determining a direction of said tilt angle in said geo-referenced coordinate system.
 10. A non-transitory computer-readable storage medium having instructions embodied therein that when executed cause a computer system to perform a method for determining a tilt angle of a crane, said method comprising: accessing data from a Global Navigation Satellite System (GNSS) receiver antenna at three positions of a rotatable portion of a crane as said rotatable portion of said crane rotates about a pivot point; determining three locations of said GNSS receiver antenna in a geo-referenced coordinate system for said three positions of said rotatable portion of said crane; calculating a plane of rotation based on said three positions of said rotatable portion of said crane; and determining a tilt angle of said crane based on an angular difference between said plane of rotation and a horizontal plane, wherein said tilt angle includes an angular displacement from a first vector normal to said horizontal plane to a second vector normal to said plane of rotation about said pivot point.
 11. The non-transitory computer-readable storage medium of claim 10, further comprising: displaying said tilt angle.
 12. The non-transitory computer-readable storage medium of claim 10, further comprising: accounting for said tilt angle during operation of said crane.
 13. The non-transitory computer-readable storage medium of claim 10, further comprising: adjusting a building information modelling (BIM) based on said tilt angle.
 14. The non-transitory computer-readable storage medium of claim 10, further comprising: confirming levelness of said crane based on said tilt angle.
 15. The non-transitory computer-readable storage medium of claim 10, wherein said determining a tilt angle of said crane based on said three locations of said GNSS receiver antenna comprises: determining a plane which encompasses said three locations in said geo-referenced coordinate system; and calculating an angle of said plane with respect to a notional level plane in said geo-referenced coordinate system.
 16. The non-transitory computer-readable storage medium of claim 15, further comprising: determining a normal vector of said plane.
 17. The non-transitory computer-readable storage medium of claim 15, further comprising: determining a direction of said tilt angle in a geo-referenced coordinate system.
 18. A crane system comprising: a crane, wherein a portion of said crane is configured to rotate about a pivot point; a Global Navigation Satellite System (GNSS) receiver comprising a GNSS antenna, said GNSS antenna disposed on said portion of said crane; and a processor for: receiving data from said GNSS receiver antenna while said GNSS receiver antenna is located at three positions as said portion of said crane rotates about a pivot point; determining three locations of said GNSS receiver antenna in a geo-referenced coordinate system of said three positions for said three positions of said portion of said crane; calculating a plane of rotation based on said three positions of said portion of said crane; and determining a tilt angle of said crane based on an angular difference between said plane of rotation and a horizontal plane, wherein said tilt angle includes an angular displacement from a first vector normal to said horizontal plane to a second vector normal to said plane of rotation about said pivot point.
 19. The crane system of claim 18, wherein said processor is further configured for: controlling display of said tilt angle.
 20. The crane system of claim 18, wherein said processor is further configured for: accounting for said tilt angle during operation of said crane.
 21. The crane system of claim 18, wherein said determining a tilt angle of said crane based on said three locations of said GNSS receiver antenna further comprises: determining a plane which encompasses said three locations in said geo-referenced coordinate system; and calculating an angle of said plane with respect to a notional level plane in said geo-referenced coordinate system.
 22. The crane system of claim 18, wherein said processor is further configured for: determining a normal vector of said plane which encompasses said three location in said geo-reference coordinate system.
 23. The crane system of claim 18, wherein said processor is further configured for: determining a direction of said tilt angle in said geo-referenced coordinate system.
 24. The crane system of claim 18, wherein said portion of said crane is selected from a group consisting of: a cab, a working arm, a counterweight, a boom and a trolley.
 25. The crane system of claim 18, wherein said crane is selected from a group consisting of: a tower crane, a luffing crane, a level luffing crane, a fixed crane, a self-erecting crane, a crawler crane, and a telescopic crane.
 26. A method for determining levelness of a crane, said method comprising: rotating a portion of said crane at least one-halfway about a pivot point, wherein a Global Navigation Satellite System (GNSS) receiver antenna is disposed on said portion of said crane; determining, by a GNSS receiver, at least a first location and a second location of said GNSS receiver antenna in a geo-referenced coordinate system during said rotating; determining, by a processor, a first height of said GNSS receiver antenna at said first location and a second height of said GNSS receiver antenna at said second location; and determining, by said processor, a height differential between said first height and said second height.
 27. The method of claim 26, further comprising: confirming levelness of said crane based on said height differential. 